![]() |
Предыдущая статья - ссылочка
Основной сайт: Trainings – Main Ссылка на задание: SQL injection challenge Давайте решим вторую задачу. С ней у меня вроде получилось, но очень криво. Давайте приступим. https://forum.antichat.xyz/attachmen...e0b0081c21.png Она схожа с предыдущей, но в этом случае текст из поля ввода подставляется в переменную $text. Как видите на картинке, я пытался закрыть кавычки, после вывести все пароли из таблицы users, а остальное закомментировать двумя тире. Но выдаёт ошибку. Попрошу тех кто разбирается объяснить почему команда не правильная. Я решил задачу по другому: ' OR 1=1 -- ', только она выдаёт весь список, а нам нужен 9 ID. Как подчеркнул в предыдущей статье explorer, данный способ не корректный, потому что в базе могут быть тысячу и больше ID. Цитата:
|
Цитата:
|
Цитата:
И не плодите темы. Пишите в одной |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Опять одни и те же грабли - запрос плохой, очевидно же, что так выведется ВСЁ, а всего может быть тысячи строк.
Вот решение: ' union SELECT pass,2,3 FROM users WHERE id=9 -- - В задании написано - Поля: id, login, pass Тут уже очевидная подсказка - полей 3 штуки. Значит нужно использовать union для объединения, опять же указывая условие. Таким образом получится вывести в одну строку ответ. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Пробел не очевиден, поэтому чтобы его не упустить и добавляют третий дефис, или просто + вместо пробела, дело привычки. |
Цитата:
|
Зачем тут union, если можно просто написать
SQL: Код:
'SQL: Код:
SELECT |
Цитата:
https://forum.antichat.xyz/attachments/4851798/11.png |
Здравствуйте. Разве переменной $text не присваивается значение запроса? Т.е. почему не сработает $text= SELECT login FROM users WHERE id=9;
Т.е. запрос должен выглядеть следующим образом: SELECT * FROM users WHERE id=2 OR login='somelogin (Ответ на запрос)' -- -'. Почему тогда запрос выглядит так? Подставленное значение переменной выходит за кавычки условия. SELECT * FROM users WHERE id=2 OR login='' UNION SELECT * FROM users WHERE id=9 -- -' |
Цитата:
SELECT * FROM users WHERE id=2 OR login='' UNION SELECT * FROM users WHERE id = 9 -- - Не гнобите, все мы учимся) А свой вопрос с ответом оставлю для таких же внимательных) |
Цитата:
|
| Время: 05:36 |