[Из песочницы] История одного бэкдора
Предыстория
Жил-был один старый-старый сайт. Родители от него отказались, и на втором десятке лет существования он попал к нам. Он представлял из себя джунгли PHP кода, разбросанного по папкам. Все это было написано в разное время, с использованием разных паттернкостылей, в разных кодировках (до 3ёх кодировок в пределах одного файла). MVC тогда, наверное, еще не было известно, да и о шаблонизаторах разработчики не слышали, так что не стоит удивляться внезапному
<? if (cond) { ?>
в HTML разметке. Я провел не один час в увлекательных поисках нужного <? } ?>
Разработчики не забывали и про бэкапы: в корне можно было найти index.php, index_old.php, index.php.bak. Но несмотря ни на что, это чудо работало. А что работает — не трожь.Завязка
Эта история началась, когда солнечным декабрьским утром специалист по продвижению с удивлением обнаружил ссылки на чужеродные сайты в футере. Немного покопавшись выяснилось 2 вещи:
- это
сапа
; - заказчик недоумевает.
Похожие новости
- Java и постквантовый TLS
- Цена одной опечатки: Как три неверные буквы сорвали киберограбление на миллиард долларов
- Вредоносная атака на Laravel-Lang
- Двигатель, колёса и панель приборов: Из чего на самом деле состоит ваш сайт
- Meta 1 мая показала как они хранят ключи от ваших бэкапов WhatsApp. Разбираю архитектуру и сравниваю
- CyLab Security Academy: как Carnegie Mellon превратила CTF в полноценную обучающую платформу
- Обход блокировок внутри iOS-приложения: VLESS + Reality через sing-box, и грабли по дороге
- QNAME minimisation на практике: RFC 7816, реализация, грабли
- Двигатель внутреннего сгорания и PHP: Почему старые технологии не умирают
- Вы платите OpenAI $20 в месяц, а он зарабатывает на вас ещё $100 млн за полтора месяца. И это только начало