Pull to refresh

Comments 26

времени у них это заняло минут 5, они готовым инструментом пользовались, скорее всего
Может это сайт был не единственным, значит профит они все-таки получили.
За пять лет работы — на хлеб с маслом хватит точно.
Если убрать &copyZend и т.д. то ничего работать не будет.
Там ещё должен быть хеш юзера. Думаю можно написать тех. поддержку sape и, может быть, ему что-то сделают…
Там он даже не один. На выбор _SAPE_USER_, _LINKFEED_USER_, _ML_ID в дополнение к _LNK_USER, который и шлется на сапу для получения ссылок.
Вот вы любопытный.

Я бы сделал бэкап, удалил подозрительный код и проверил — на месте ли ссылки?
Гораздо интереснее узнать то, как он там появился, на мой взгляд.
Мне попадался шелл в котором был копирайт с запретом на реверс инжиниринг =)
А дальше все примерно похоже как у вас.

Интересно было читать. Правда тот факт, что @ и array_map пришлось гуглить мне немного поставил в тупик.
И незаурядное регулярное выражение /x/e

preg_replace( "#x#e", ....

Я с недоверием отношусь к сложным регулярным выражениям, а тут и вовсе потух.

При первом чтении детали опускаются. Сначала заметил preg_replace(), и глаза сразу начинают искать что-то похожее на регулярное выражение. Вот так, в спешке, особо не разбираясь в порядке параметров, принял странного вида второй параметр за регулярное выражение. И вот оно-то меня и впечатлило. Видимо вы чаще меня пользуетесь регулярками, потому и в заблуждение вас ввести сложнее.
Да, я так, в качестве шутки. Рад что удалось раскурить код :)
Солидарен с вами, у меня так же возник вопрос об уровне владения php автором.
UFO landed and left these words here
1. подломали 5 лет назад, и сейчас уже не найти правды;
2. чтобы что-нибудь сделать было бы неплохо выкинуть всю ту попахивающую кучу неподдающегося рефакторингу исходного кода, переехать на сервер с современными версиями apache/php и доступом, отличным от FTP. Но заказчику такое решение дастся очень тяжело, так что только хардкор. А по поводу конкретно этой проблемы — решением является выпиливание злокачественного файла, с попутным общением с техподдержкой sape.ru в надежде выйти на того, кто это соорудил.
По поводу банальности — хорошо, если для вас они являются таковыми. На разрабатываемых мною проектах такого пока не было. Уверен, что найдется отличное от нуля число разработчиков, которым такое никогда и не встретится.

Если вы уже сталкивались с чем-то подобным и исходя из своего опыта сможете предложить способы нахождения/закрытия дыр — не стесняйтесь оставлять советы.
да вы знаете, компьютер это такой черный ящик, почти как мишна Тьюринга… совершенно непонятно как посмотреть куда он там лезет и на какие сайты и зачем ходит. Можно даже подумать что компьютер живет какой-то своей жизнью а Вы, как несчастный разработчик, вынуждены расшифровывать какой-то мутный код написаный вирусней в архейскую эру :sarcasm:
А где обещанный криптоанализ? Тут только про обфускацию написано.
Простейший обфусцированный троянец, коих тысячи в день раскидывают скрипты автоматического взлома через популярные уязвимости, даже не бекдор.
Статья о том как вы узнали основы PHP.
Новичок в php разбирает банальнейший код. мда. На вашем месте я бы всерьез задумался откуда там взялся троян, а не то как он работает, нашел бы уязвимость на сервере. да и в сапу неплохо было бы сообщить, дабы забанили хулигана.
Не обязательно, что скрипт залили через уязвимость.
К сожалению, встречаются непорядочные разработчики, которые оставляют на всех разрабатываемых сайтах закладки для простановки ссылок и рассылки спама.
Смотрим мануал php:
Взято отсюда: pcre modifiers
preg_replace("#x#e", ..); :
e (PREG_REPLACE_EVAL)

Предостережение
Использовать этот модификатор не рекомендуется, так как это может легко добавить уязвимости в системе безопасности

Приведенный выше код может быть легко скомпрометирован путем передачи такой строки как <h1>{${eval($_GET[php_code])}}</h1>. Это дает атакующему возможность исполнить произвольный PHP-код и по существу предоставляет ему почти полный доступ к вашему серверу.
Only those users with full accounts are able to leave comments. Log in, please.