 |

06.05.2011, 19:28
|
|
Познавший АНТИЧАТ
Регистрация: 12.07.2010
Сообщений: 1,546
С нами:
8334326
Репутация:
75
|
|
читал я статью /thread43966.html
и решил попробовать
1.3 Третий случай (Авторизация)
сдалал на своём хостинге форму входа
http://mai1-ru.h2m.ru/yyy.php
исходный код
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]
[/COLOR]
Авторизация
[COLOR="#0000BB"]
[/COLOR] Выйти
[COLOR="#0000BB"]
[/COLOR]
Логин:
Пароль:
[COLOR="#0000BB"]
[/COLOR]
[/COLOR]
файл action.php
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR]
[/COLOR]
перепробовал все примеры введения иньекции, но ничего не происходит, почему? в статье штото не правильно написано? покажите мне плыз как и што надо вводить штоб например войти под админом
login: pass
user:123
admin:12345
|
|
|

06.05.2011, 20:58
|
|
Новичок
Регистрация: 28.01.2011
Сообщений: 6
С нами:
8046326
Репутация:
0
|
|
' or '1' = '1
Авторизация проходит...
|
|
|

06.05.2011, 21:52
|
|
Познавший АНТИЧАТ
Регистрация: 12.07.2010
Сообщений: 1,546
С нами:
8334326
Репутация:
75
|
|
Сообщение от {lIbERT}
' or '1' = '1
Авторизация проходит...
ето в поле пасс писать надо?
|
|
|

06.05.2011, 22:08
|
|
Новичок
Регистрация: 28.01.2011
Сообщений: 6
С нами:
8046326
Репутация:
0
|
|
в оба.
|
|
|

06.05.2011, 22:51
|
|
Новичок
Регистрация: 04.05.2011
Сообщений: 10
С нами:
7908086
Репутация:
10
|
|
Потому что, у тебя проверка
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if ([/COLOR][COLOR="#0000BB"]mysql_num_rows[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$sql[/COLOR][COLOR="#007700"]) ==[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"])[/COLOR][/COLOR]
Тоесть запрос должен возвращать одну запись
Вариантов тут много:
login: 'or(1)limit 1-- a
password: pew
login: \
password: or(1)limit 1-- a
login: ' union select 1-- a
password: pew
При втором варианте ковычка от логина закроется кавычкой от пасса, и в пасс вписывается злозапрос.
Сообщение от {lIbERT}
' or '1' = '1
Авторизация проходит...
Сообщение от {lIbERT}
в оба.
Вы чему людей учите?
|
|
|

06.05.2011, 23:13
|
|
Познавший АНТИЧАТ
Регистрация: 12.07.2010
Сообщений: 1,546
С нами:
8334326
Репутация:
75
|
|
ага, тоесть запрос у меня получается такой
SELECT `id` FROM `user` WHERE `user`= ''or(1)limit 1-- a' AND `pass`= 'pew' LIMIT 1
а тут or(1)limit 1-- a што значит ета идиница or(1) и буква --а
|
|
|

06.05.2011, 23:29
|
|
Новичок
Регистрация: 04.05.2011
Сообщений: 10
С нами:
7908086
Репутация:
10
|
|
Сообщение от qaz
ага, тоесть запрос у меня получается такой
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
|
|
|

08.05.2011, 13:48
|
|
Познавший АНТИЧАТ
Регистрация: 12.07.2010
Сообщений: 1,546
С нами:
8334326
Репутация:
75
|
|
а вот такой вопрос
SELECT `id` FROM `user` WHERE `user`= '' union select 1-- +' AND `pass`= 'pew' LIMIT 1
' ' union select 1-- +' AND `pass`= 'pew'
остаётся одна ковичка которая незакрывается, почему не возникает синтактической ошибки?
|
|
|

08.05.2011, 15:23
|
|
Познавший АНТИЧАТ
Регистрация: 16.07.2010
Сообщений: 1,022
С нами:
8328566
Репутация:
935
|
|
Потому что ты комментируешь конец запроса (эту часть: +' AND `pass`= 'pew' LIMIT 1)
|
|
|
|
 |
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|