#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 отсутствует в этой базе данных.
В этом случае вы могли бы внедрить некоторый вредоносный код, чтобы заменить то, что отображается как имя пользователя, произвольной информацией о базе данных.
Итак, вы уже должны были понять, что ответ на ваш вопрос отрицательный.