SQL-инъекция — результаты в веб-интерфейсе и вывод MySQL

Я изучаю некоторые основы SQL-инъекций. У меня есть уязвимое приложение (SQLi Labs), поэтому я вижу исходный код и пытаюсь выяснить, как должен быть параметризован URL-адрес, чтобы получить тот же результат, что и интерфейс mysql. Однако есть разница, которую я не могу решить, поэтому, пожалуйста, помогите мне.

Это код PHP:

$sql="SELECT * FROM users WHERE id='$id'";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

Это запрос MySQL:

mysql> select * from users where id=3--'' OR 1=1;
+----+----------+------------+
| id | username | password   |
+----+----------+------------+
|  1 | Dumb     | Dumb       |
|  2 | Angelina | I-kill-you |
|  3 | Dummy    | p@ssword   |
|  4 | secure   | crappy     |
|  5 | stupid   | stupidity  |
|  6 | superman | genious    |
|  7 | batman   | mob!le     |
|  8 | admin    | admin      |
|  9 | admin1   | admin1     |
| 10 | admin2   | admin2     |
| 11 | admin3   | admin3     |
| 12 | dhakkan  | dumbo      |
| 14 | admin4   | admin4     |
+----+----------+------------+

Это URL:

http://192.168.19.155/sqli-labs/Less-1/?id=2--%20%27%27%20OR%201=1

URL возвращает мне только одну строку (которая была определена в опции «? Id = 2»), остальная часть запроса (-% 20% 27% 27% 20OR% 201 = 1), похоже, игнорируется.

Запрос URL должен возвращать всю таблицу пользователей, как это делает интерфейс mysql. Здесь нет фильтрации входных данных, поэтому я не могу понять, почему результат URL не совпадает с выходом интерфейса mysql. Пожалуйста, помогите мне!

Спасибо!
Erik

-1

Решение

На самом деле, mysql_fetch_array возвращает информацию только об одной строке. Вы можете изменить скрипт, чтобы получить ожидаемый ответ, таким образом:

while ($row = mysql_fetch_array($result)) {
print_r($row);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]