извлечение информации из базы данных с помощью SQL-инъекции

#php #mysql #sql #web #code-injection

#php #mysql #sql #веб #код-инъекция

Вопрос:

У меня есть веб-сайт, где я должен получить пароль. У меня есть только одна форма на странице, где я должен ввести пароль. Я попробовал «ИЛИ 1 = 1 # и он сказал мне «Аутентификация действительна», но не предоставил мне пароль, который мне нужен.

Есть ли какой-либо способ с помощью SQL-инъекции «напечатать» пароль, написав sql-запрос непосредственно в форме, а не в URL?

Комментарии:

1. выведите здесь запрос, который у вас есть

Ответ №1:

Дело в том, что вы пытаетесь извлечь данные из процесса, который фактически не показывает никаких данных конечному пользователю. Позвольте мне объяснить, что ваша уязвимая процедура — это процесс входа в систему, который в основном проверяет, ввел ли пользователь правильную комбинацию имени пользователя и пароля.

Пример 1

Запрос должен быть примерно таким:

 select count(*) form users where username='$user', password='$password';
  

Этот запрос не даст вам ничего знать о пользователе, которого вы пытаетесь взломать, в основном потому, что просто не имеет никакого смысла делать это во время входа в систему. Единственное, что вы будете знать наверняка, это результат: 1 или 0 этого запроса.

Случай 2 (бессмысленный)

Должен ли быть запрос, подобный этому:

 select username form users where username='$user', password='$password';
  

Давайте предположим, что при входе в систему страница сообщает вам, что имя пользователя x отсутствует в этой базе данных.
В этом случае вы могли бы внедрить некоторый вредоносный код, чтобы заменить то, что отображается как имя пользователя, произвольной информацией о базе данных.

Итак, вы уже должны были понять, что ответ на ваш вопрос отрицательный.