PDA

Просмотр полной версии : авторизация


qaz
06.05.2011, 19:28
читал я статью /thread43966.html

и решил попробовать

1.3 Третий случай (Авторизация)

сдалал на своём хостинге форму входа

http://mai1-ru.h2m.ru/yyy.php

исходный код


PHP:




Авторизация



Выйти





Логин:

Пароль:








файл action.php


PHP:




перепробовал все примеры введения иньекции, но ничего не происходит, почему? в статье штото не правильно написано? покажите мне плыз как и што надо вводить штоб например войти под админом

login: pass

user:123

admin:12345

{lIbERT}
06.05.2011, 20:58
' or '1' = '1

Авторизация проходит...

qaz
06.05.2011, 21:52
{lIbERT} said:
' or '1' = '1
Авторизация проходит...


ето в поле пасс писать надо?

{lIbERT}
06.05.2011, 22:08
в оба.

[RedSky]
06.05.2011, 22:51
Потому что, у тебя проверка


PHP:
if (mysql_num_rows($sql) ==1)

Тоесть запрос должен возвращать одну запись

Вариантов тут много:

login: 'or(1)limit 1-- a

password: pew

login: \

password: or(1)limit 1-- a

login: ' union select 1-- a

password: pew


При втором варианте ковычка от логина закроется кавычкой от пасса, и в пасс вписывается злозапрос.


{lIbERT} said:
' or '1' = '1
Авторизация проходит...




{lIbERT} said:
в оба.


Вы чему людей учите?

qaz
06.05.2011, 23:13
ага, тоесть запрос у меня получается такой

SELECT `id` FROM `user` WHERE `user`= ''or(1)limit 1-- a' AND `pass`= 'pew' LIMIT 1

а тут or(1)limit 1-- a што значит ета идиница or(1) и буква --а

[RedSky]
06.05.2011, 23:29
qaz said:
ага, тоесть запрос у меня получается такой
SELECT `id` FROM `user` WHERE `user`= ''or(1)limit 1-- a' AND `pass`= 'pew' LIMIT 1
а тут or(1)limit 1-- a што значит ета идиница or(1) и буква -- a


Это значит, что надо открыть ман по майскулу и прочитать. /* Ах да, это же, конечно, хардкорнее чем спрашивать на форуме */

Добавлением условия or, которое заведомо тру мы возвращаем записи из таблицы, что и требовал от нас для авторизации твой "тру-программерс" код.

Для чего здесь нужен лимит я уже написал в прошлом посте, чтобы запрос не возвращал больше одной записи(опять-таки условие твоего "кода").

А "-- " коментарий, после которого должен быть пробел. А что стоит после коментария - это не важно, хоть -- a vot tut lubaya hueta

qaz
08.05.2011, 13:48
а вот такой вопрос

SELECT `id` FROM `user` WHERE `user`= '' union select 1-- +' AND `pass`= 'pew' LIMIT 1

' ' union select 1-- +' AND `pass`= 'pew'

остаётся одна ковичка которая незакрывается, почему не возникает синтактической ошибки?

Expl0ited
08.05.2011, 15:23
Потому что ты комментируешь конец запроса (эту часть: +' AND `pass`= 'pew' LIMIT 1)