[PHP-инклудинг и allow_url_include] [Проблема с WUBI и Ubuntu 10.04] [Как был взломан antichat.ru] [AntiDDoS в LightHTTPd] [Sleep() в слепых SQLi] [Уязвимости разных движков] [Уязвимости Joomla] [Уязвимости Invision Power Board] [Уязвимости GuppY CMS] [Уязвимости 1024cms] [Уязвимости IceBB] [Уязвимости Zeus Botnet] [Web-разведка] [Сканер уязвимости nginx] [Анализ текстов] [SSI Web-shell] | Использование sleep() вместо benchmark() в sql-инъекцияхЗачастую встречаются sql-инъекции, в которых нет ни вывода полей, ни вывода ошибок. Рассмотрим следующий запрос:
Здесь будет задержка 5 секунд (работаем с пятой веткой) + уйдёт время на выполнение самого запроса. Теперь посмотрим, как вытаскивать символы. Предлагаю делать это с помощью ASCII-кодов:
В данном запросе задержка будет равна одной пятидесятой от кода символа в секундах. Таким образом, на 1 md5() хеш потребуется ровно столько запросов, сколько в нём символов – 32. Теперь о плюсах и минусах: + Рекордные 32 запроса на md5() Надо отметить, что минусы не так существены, как плюсы – старые ветки MySQL уже отмирают, а погрешностей можно избежать, меняя знаменатель в функции SLEEP(). Но главный минус -- это то, что эксплойт работает долго (чем больше множитель, тем дольше). PoC-эксплойт (Pastebin): |
| © BECHED |