Пример внедрения PHP / MySQL - PullRequest
       6

Пример внедрения PHP / MySQL

1 голос
/ 01 декабря 2011

Это продолжение этого вопроса: Являются ли аддлаши PHP уязвимыми для атаки SQL-инъекциями? (спасибо всем, кто там ответил).

Тот же сценарий, но у меня естьэтот код (на другой странице):

             $ID = $_GET['id'];
             $sql = "SELECT * FROM blog WHERE id='$ID'";
             $result = mysql_query($sql);

Это должно быть достаточно легко использовать, верно?

Если я правильно помню, я НЕ МОГУ запустить второй запрос внутри mysql_query (), но я долженбыть в состоянии сделать что-то другое, верно?Хотелось бы иметь возможность вставить пользователя в таблицу администратора или изменить пароль или что-то еще, но я предполагаю, что я не смог бы сделать ничего, кроме как прикоснуться к таблице блога.Это верно?Любые предложения о том, как я могу поиграть и настроить что-то, чтобы доказать, что есть проблемы?

Ответы [ 2 ]

6 голосов
/ 01 декабря 2011

Он называется UNION и позволяет вам извлекать из дополнительных таблиц с помощью второго запроса.

Я предполагаю, что что-то вроде 1' UNION ALL SELECT username title, password body FROM users WHERE '1'='1 будет работать.(извлекает из таблицы users и сопоставляет значения имени пользователя и пароля с их blog «эквивалентами»).

0 голосов
/ 01 декабря 2011

Не думаю, что кто-то подумает, что вы пытаетесь кого-то взломать - это законный вопрос.

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

SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password';

Вы можете довольно легко войти в систему с помощью ' OR 1 = 1 и получить доступ к веб-сайту.

Кроме того, если запрос был запросом DELETE или UPDATE, вы, вероятно, могли бы манипулировать им для выполнения без предложения WHERE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...