Интересно Ломаем панель для Телеграмм-бота

evrenur

Куратор PR
Команда форума
PR-group
Private Pickup
Регистрация
23 Янв 2019
Сообщения
1,396
Баллы
0
Общие продажи
0$
Общие покупки
0$
У меня уже конкретно замылились глаза от админок малвари и прочей приват-блекхет-параши. К счастью, знакомый скинул на анализ бота для продаж через телегу - хоть какое-то разнообразие.

Ожидалось, что это будет глоток свежего воздуха. Так и оказалось. С небольшой разницей. Не свежего, а несвежего и не воздуха (пердежа сталобыть).

Продажник этого бота:

img_5e73c9e76c478.png


Продажник

По описанию - типичный движок для продажи спайсов закладками. Но подразумевается, что вы будете торговать аккаунтами стима и прочим ширпотребом (верим-верим).

XSS
Я пробовал пихнуть XSS непосредственно через бота, но вариантов таких не было. Зато если обратиться напрямую к файлу, который обрабатывает данные от телеграмм-бота, можно было пропихнуть XSS.

7ff.png



И результат в админке:

5e5.png


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

Обход аутентификации
Начало файлика admin.php:

22733.png



Т.е. для того чтобы получить доступ к админке, достаточно поставить куку "h" с любым параметром:

862afcc.png



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

Blind SQL-injection
Если еще раз взглянем на тот же самый кусок кода, то увидим SQL-инъекцию.

73fda223631.png



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

Insert SQL-injection
Внутри админки тоже есть скули. Хотя и неправильно говорить "внутри", так как нам не нужны актуальный логин/пароль или куки админа. Например, при добавлении товара пишем вот так:

dd953873.png



И результат:

eb24ce4.png



Если бд крутится от рута (а с этим скриптом скорее всего так и будет) можно прочесть файлик:

04104.png



И читаем:

087b4fb.png


Остался финальный штрих.

RCE
Заходим на страничку setup.html и перезаписываем ранее прочитанный файлик config.php:

170a61a.png


В этом файлике видим:

efac.png



Ну всё, можно лить шеллы и прочие непотребства творить:

fa37.png


Ранее мне уже попадались подобные боты (минимум 4), где атаку можно было провести прямо через бота в телеграмме (чаще всего - вставляя в никнейм xss-вектор).

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

На что я отвечу:

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

Ну и вот как вы относитесь к тому, что с вас берут деньги как за двустволку, а дают поделку из кусков говна и изоленты?