[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SQL иньекция
Dron19
Всем привет, вто попфтался ломануть простой запрос, вот есть бд с таблицей test в которой поля realname,password,mail
и написал простенький запрос и вывод данных

<?php
$db = mysql_connect("localhost","admin","galaxy");
mysql_select_db("music",$db);
$result = mysql_query("SELECT mail,realname FROM test WHERE id='".$_GET['id']."'");
$array = mysql_fetch_array($result);
print "Имя ".$array['realname']."<br>";
print "Email ".$array['mail'];
?>


Вот как видно тут параметр принимается с ГЕТ строки, вот я прописал в строку вот это http://localhost/?id=1' union select mail,password as realname from test where '1
и должен был выполниться такой запрос

SELECT mail,realname FROM test WHERE id='$_GET[id]' UNION SELECT mail,password AS realname FROM test WHERE '1'

и уже realname будет содержать поле password, но этого не происходит, почему???



Спустя 2 минуты, 45 секунд (31.12.2010 - 14:03) sharki написал(а):
Dron19
Sql инъекция не получится т.к у тебя данные в кавычках
SELECT mail,realname FROM test WHERE id='.$_GET['id'].'


Убери кавычки и глянь
"SELECT mail,realname FROM test WHERE id=".$_GET['id'].""

Спустя 18 минут, 42 секунды (31.12.2010 - 14:22) Dron19 написал(а):
сейчас попробую

Спустя 51 секунда (31.12.2010 - 14:22) Dron19 написал(а):
Ничего не работает, а кавычки не помеха, я их в запросе обошел, посмотри на запрос

Спустя 1 минута (31.12.2010 - 14:23) Dron19 написал(а):
вот он:
http://localhost/?id=1' union select mail,password as realname from test where '1
это соответствует
SELECT mail,realname FROM test WHERE id='$_GET[id]' UNION SELECT mail,password AS realname FROM test WHERE '1'
и никаких проблем не будет
не в этом тут дело это уж точно

Спустя 1 минута, 42 секунды (31.12.2010 - 14:25) Dron19 написал(а):
sharki, попробуй у себя это сделать, а то просто недавно я ломанул сайт один, потом начал скрипты написанные мной проверять, далее просто баловаться =) и ссмотрю не получается

Спустя 2 минуты, 17 секунд (31.12.2010 - 14:27) sharki написал(а):
Dron19
По моему GET передает данные если строчка БЕЗ пробелов, в твоем случае он передаст только
http://localhost/?id=1'

Спустя 3 минуты, 24 секунды (31.12.2010 - 14:31) Dron19 написал(а):
Цитата (sharki @ 31.12.2010 - 11:27)
Dron19
По моему GET передает данные если строчка БЕЗ пробелов, в твоем случае он передаст только
http://localhost/?id=1'

нет, он кодирует пробелы, я таким же способом свои скрипты взламывал и защищал

Спустя 3 минуты, 9 секунд (31.12.2010 - 14:34) sharki написал(а):
Ну я просто никогда этой хренью не занимался)))
А ты выведи сам запрос т.е
<?php 
$db = mysql_connect("localhost","admin","galaxy");
mysql_select_db("music",$db);
$sql = "SELECT mail,realname FROM test WHERE id='".$_GET['id']."'";

echo $sql;


$result = mysql_query($sql);
$array = mysql_fetch_array($result);
print "Имя ".$array['realname']."<br>";
print "Email ".$array['mail'];
?>

Спустя 4 минуты, 16 секунд (31.12.2010 - 14:38) Dron19 написал(а):
сча попробую

Спустя 3 минуты, 43 секунды (31.12.2010 - 14:42) Dron19 написал(а):
все ясно мне, у меня автоматом кавычки экранируются и запрос становится не зловредным =)

Спустя 37 секунд (31.12.2010 - 14:43) Dron19 написал(а):
че за бред? Я же нигде не защищал код от кавычек

Спустя 8 минут, 16 секунд (31.12.2010 - 14:51) Dron19 написал(а):
хотя очистить таблицу я смог

Спустя 11 секунд (31.12.2010 - 14:51) sharki написал(а):
Dron19
Это защищает магически ковычки))) почитай в инете забыл синтаксис..

Или просто убери их ф-ей stripslashes($sq) так чтоль

Спустя 2 минуты, 35 секунд (31.12.2010 - 14:54) Dron19 написал(а):
Цитата (sharki @ 31.12.2010 - 11:51)
Dron19
Это защищает магически ковычки))) почитай в инете забыл синтаксис..

Или просто убери их ф-ей stripslashes($sq) так чтоль

да я вспомнил уже, в php.ini убрал их


_____________
PHP+MySQL - уже изучил, осталось всего лишь это:
C,C++,C#,JavaScript,Python,Ruby,Perl,OpenGl,DirectX,ASP.NET - Намерен учить все
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.