User 13204940 Ответов: 0

Time-based mysql injection penetration testing tool - sleep() не работает


Привет,

Я создаю инструмент тестирования на проникновение для сканирования различных уязвимостей sql-инъекций. Простой начальный пример, который я не могу заставить работать, заключается в следующем;
http://xxx/update_comment.php?id=test';select case when (select substring(table_name, 1, 1) from information_schema.tables limit 1) = 'b' then 1 else sleep(3) end#

Это соответствующая строка моего тестового сценария, которая вызывает проблемы;
$conn->query('UPDATE test_table SET id = id WHERE id = \'' . $_GET['id'] . '\'');

Когда я выполняю команду, которая будет выполняться скриптом, в Adminer, она работает. Но когда сценарий пытается это сделать, он немедленно возвращается, и поэтому никакие тайминги не могут быть собраны из теста. Что могло быть причиной такого немедленного возвращения?

Что я уже пробовал:

Изменение времени сна
Спрашиваю у гугла, но безрезультатно

[no name]

В конце концов я понял, что это потому, что вы должны использовать метод multiquery, чтобы иметь несколько запросов. Мое решение состояло в том, чтобы использовать один запрос, но иметь оператор 'or' для добавления остальной части введенного кода, а не отдельный запрос.

0 Ответов