Anubis

Для конкурса статей, решил сделать анализ панели Анубиса. Бот популярный, наделал много шума, найти админки разных версий не составляет труда.

Вместе с вами мы проследим, как со временем улучшалось качество и безопасность кода.

Android Bot by maza-in

Начнем с саааааамой старой версии. С той версии, когда непосредственно Анубиса еще не было, а был просто "Android Bot by maza-in". Тот самый бот из статьи, которая заняла первое место на конкурсе:

Говорят, дареному коню в зубы не смотрят, но мы всё же посмотрим.

XSS

Начнем с простенького. Файл kliets.php. Следим за руками (стрелочками):

И вывод на страничку:

Может данные как-то фильтруются, когда попадают в БД? Файлик set_data.php, где код добавления новых ботов:

Это чудесно, что используется функция htmlspecialchars(), однако смысла в ней нет никакого - дальше идет расшифровка данных, и уже они  попадают в SQL-запрос без какой-либо фильтрации.

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

SQL-injection

Как было упомянуто выше, имеются и sql-инъекции. Однако, мы не будем морочиться с тем, чтобы формировать какой-то хитрый запрос от бота, есть путь существенно проще.

Файл command_go_modul.php, доступен кому угодно:

Учитывая, что это PDO, можно просто дописать еще SQL команды, после точки с запятой:

На скриншоте видно, как можно удалить всё из таблицы commands. Но не обязательно что-либо удалять - мы можем использовать любой другой SQL-запрос (INSERT, UPDATE, DROP, CREATE).

Anubis

А это уже не паблик бот. Приватный продукт, который все хотят купить, но никто не знает где достать. Давайте посмотрим, какие изменения коснулись кода панели.

XSS

Как и в старой версии, никакой фильтрации нет (всё тот же файл kliets.php):

И чуть ниже, как мы любим:

Точно также - делаем "отстук" ботом с полезной нагрузкой и:

SQL Injection

Всё те же самые ошибки. Только файл теперь называется set_go_modul.php:

И далее:

Совершенно также - дописываем код, ставим точку с запятой и выполняем любую SQL-команду.

Разумеется, бот по ру не работал, ни в коем случае:

Наверное, супостаты хуй в жопу инжекты в папку подкинули.
Как-то странно, этот бот, образно выражаясь, уже не дареный, но зубы у него такие же гнилые как и у прошлого...

Anubis 2.5

Перескочим на последнюю версию. Должно быть здесь то уже всё схвачено. Но...

XSS

Структура панели поменялась, файлы переименованы, но все ошибки были заботливо сохранены (botstable.php):

И чуть ниже:

Если кто-то получит доступ к phpmyadmin или adminer, то от XSS не защититься. Но может быть были предприняты какие-то меры и есть какая-никакая фильтрация на входе?

Смотрим файлик a3.php:

И чуть ниже:

ШТОШ. Ну не в этот раз. Опять отправляем через бота запрос и опять наблюдаем уже поднадоевший alert:

SQL injection

Если еще раз посмотреть на код файла a3.php, можно заметить, что PDO::prepare используется совершенно неправильно:

Это как надо, а в коде просто переменные в кавычках. Выходит, как и в прошлых версиях, в этой мы тоже можем выполнить любой SQL-код. Стабильность - это то, что действительно нужно в нашем нелегком деле.

RCE

В новой версии, автор не мог нас не порадовать чем-то новеньким. Посмотрим на файл setURL.php:

Эксплоит не сильно сложный:

Как отработает, можем творить непотребства:

Заключение.

Да, потом с мазой случилось и заключение, но речь совершенно не об этом.
Как мы можем видеть, в коде панели шлейф из ошибок, еще с самой первой версии, конца 2016 года. Неважно, бесплатно раздается продукт или продается в тех самых "приватах" за нескромные суммы - от уязвимостей это не спасает.
Всё как всегда.

Image result for и так сойдет