Есть кусок кода:
$q = "SELECT * FROM users WHERE Login = '".$_POST["login"]."' ";
$q = sql($q);
Интересует именно "$_POST["login"]"
Сюда попадает текст без фильтра.
Если правильно понимаю, то сюда может быть добавлен запрос
пытаюсь добавить такого вида:
Newuser1'; UPDATE users SET PasswordHash='670b14728ad9902aecba32e22falol' WHERE login='Newuser1'
в результате получается:
$q = "SELECT * FROM users WHERE Login = '"Newuser1'; UPDATE users SET PasswordHash='670b14728ad9902aecba32e22falol' WHERE login='Newuser1'"' ";
$q = sql($q);
Соответственно должно получится: в таблице USERS у пользователя NEWUSER1 должен установиться хэш пароля "670b14728ad9902aecba32e22falol".
в различных вариациях пробовал, не получается.
что не так?
Спустя 38 минут, 24 секунды (12.09.2012 - 10:03) Игорь_Vasinsky написал(а):
Mysql не выполнит 2 запроса сразу.
а чтоб меньше страшно было то почитай про mysql_real_escape_strings()
а чтоб меньше страшно было то почитай про mysql_real_escape_strings()
Спустя 2 часа, 15 минут, 35 секунд (12.09.2012 - 12:18) inpost написал(а):
У нас сайт по программированию и безопасности Мы не учим ломать чужие сайты, а учим защищать. Защиту выше подсказали.
А вообще, при выборке используют SQL-inj для того, чтобы в массив выборки подставить данные из таблиц вместо стандартных. То есть вместо echo $row['id'] - у тебя выведется пароль из БД. В таком духе совмещаются запросы.
Update только через подзапрос можно попробовать сделать, хотя мне кажется, что не будет работать SELECT + UPDATE.
Выборка - это одна группа процедур, изменение - другая.
А вообще, при выборке используют SQL-inj для того, чтобы в массив выборки подставить данные из таблиц вместо стандартных. То есть вместо echo $row['id'] - у тебя выведется пароль из БД. В таком духе совмещаются запросы.
Update только через подзапрос можно попробовать сделать, хотя мне кажется, что не будет работать SELECT + UPDATE.
Выборка - это одна группа процедур, изменение - другая.
Спустя 41 минута, 58 секунд (12.09.2012 - 13:00) Guest написал(а):
Как же писать защиту, если не знать способов взлома?
Учить ломать чужие сайты не просил, просил помочь понять какие варианты "обхода" есть, чтобы от этого отталкиваться, т.е. фильтровать переменные и т.д.
inpost,Игорь_Vasinsky,
спасибо за помощь.
Учить ломать чужие сайты не просил, просил помочь понять какие варианты "обхода" есть, чтобы от этого отталкиваться, т.е. фильтровать переменные и т.д.
inpost,Игорь_Vasinsky,
спасибо за помощь.
Спустя 7 минут, 55 секунд (12.09.2012 - 13:08) Placido написал(а):
Если знаешь английский, на эту тему рекомендую посмотреть слайд-шоу Билла Карвина "SQL-инъекции. Мифы и заблуждения".
http://www.slideshare.net/billkarwin/sql-i...s-and-fallacies
http://www.slideshare.net/billkarwin/sql-i...s-and-fallacies