Велосипедисты в 2к18 или еще одна SQL-инъекция

Published on Feb. 23, 2018


На дворе 2018 год, но, тем не менее, эра простейших SQL-инъекций никуда не ушла и, можно сказать, процветает из-за PHP быдланекомпетентных специалистов. Ходил я по просторам интернета и наткнулся на сайт с формой проверки товара по серийному номеру...

Ну, вот такую форму я вижу. "Явно кривой самопис", -- подумал я. Полез смотреть: форма отправляется на некий файл prod_check.php

Конечно же, интересно было поподставлять всякую дичь в параметры. Но, к огромному удивлению, изощряться не пришлось: при первой же попытке (вместо года [int] -- строка) вывалилась ошибка MySQL. Посетовав на то, что не все люди используют PDO при работе с базой данных, мне стало интересно: а что в базе?

sqlmap -u "http://url.ru/prod_check.php" --method=POST --data "numb=123&prodtype=123&day=1&mon=01&year=2018" -p "numb"

Нашли payload, Посмотрим теперь на названия таблиц БД.

sqlmap -u "http://url.ru/prod_check.php" --tables

А вот и названия таблиц:) Что может быть интереснее *_auth? Ответ: *_order

Посмотрим содержимое *_order

sqlmap -u "http://url.ru/prod_check.php" --dump -D database_name -T *_order

Видим кучу писем с данными заказчиков и интересующихся, а также прямые ссылки на прикрепленные ими файлы. Прям базу забирай, открывай свою контору и по клиентам рассылай свою рекламу. Класс!

Отправив репорт об уязвимости руководству, был сильно удивлен пересланным ответом тех, кто допустил такую уязвимость. Если кратко, то их мнение состояло в том, что ничего страшного не случится, а если злоумышленник очистит базу, то ее легко восстановить из резервной копии. То, что текст страниц, адреса документов и даже номера телефонов берутся из БД их совершенно не смущало. По мнению авторитетного PHP программиста, "этой фигней никто не занимается". Ну, что ж, видимо, это привилегия PHP программистов -- фигней заниматься.

Исследование проводилось с разрешения руководства компании. Данный материал размещен в образовательных целях и не призывает ни к каким действиям.

Created by Sergey Migalin. © 2013-2019

PGP key