Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

25.04.2009, 13:28
|
|
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме: 1754802
Репутация:
380
|
|
Ну куда мне до тебя супер умного, я же забыл что в MySQL есть оператор unтра-та-таion и seтра-та-таlect:
PHP код:
$array_search=array('union','select','group','orde r','limit');
$input="http://site.ru/script.php?id=1+uniunionon+seselectlect+1";
echo str_ireplace($array_search,'тра-та-та',$input,$count);
http://site.ru/script.php?id=1+uniтра-та-таon+seтра-та-таlect+1
|
|
|

25.04.2009, 13:28
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
Byrger, зачем так делать?
--Фильтрация для числовых значений:
--Фильтрация для буквенных значений:
PHP код:
$text = mysql_escape_string(get_magic_quotes()?stripslashes($_GET['text']):($_GET['text']));
+ не забывай обрамлять эти параметры в кавычки в запросе!!!
и никакой хакер не пройдет.
Последний раз редактировалось Chaak; 25.04.2009 в 13:46..
|
|
|

25.04.2009, 13:30
|
|
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме: 1607210
Репутация:
1617
|
|
Вот вам функция , которой достаточно в 99% случаев.
PHP код:
function db_prepare($arg){
global $db_c;
if(is_numeric($arg)){
return "'".$arg."'";
}else if(is_string($arg)){
return "'".mysql_real_escape_string($arg, $db_c)."'";
}else{
return "''";
}
}
Где $db_c это переменная-ресурс коннекта к БД
ну или вообще убрать его
PHP код:
function db_prepare($arg){
if(is_numeric($arg)){
return "'".$arg."'";
}else if(is_string($arg)){
return "'".mysql_real_escape_string($arg."'";
}else{
return "''";
}
}
что такое 1% это внесение в БД файлов и всякой нестандартной всячины.
Перез использованием данной фунции должно быть установлено соединение с БД.
Запрос выглядит так
$query = "SELECT a,b,c,d FROM XXXX WHERE id=".db_prepare($id)." order by 1";
то есть параметр сам будет обрамлятся кавычками, в запросе их писать не надо.
Юзайте и будет вам счастье.
__________________
Бойтесь своих желаний. Они могут исполниться....
...О-о-о-о, ушами не услышать, глазами не понять!
Последний раз редактировалось SQLHACK; 25.04.2009 в 13:33..
|
|
|

25.04.2009, 13:32
|
|
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме: 1607210
Репутация:
1617
|
|
Сообщение от PaCo
Ну куда мне до тебя супер умного, я же забыл что в MySQL есть оператор unтра-та-таion и seтра-та-таlect:
PHP код:
$array_search=array('union','select','group','orde r','limit');
$input="http://site.ru/script.php?id=1+uniunionon+seselectlect+1";
echo str_ireplace($array_search,'тра-та-та',$input,$count);
http://site.ru/script.php?id=1+uniтра-та-таon+seтра-та-таlect+1
ебт, ты всунь эту строку в скрипт и скрипт вырежет union и select в середине слов, и в БД пройдут чистые union select
__________________
Бойтесь своих желаний. Они могут исполниться....
...О-о-о-о, ушами не услышать, глазами не понять!
|
|
|

25.04.2009, 13:33
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
Сообщение от SQLHACK
ебт, ты всунь эту строку в скрипт и скрипт вырежет union и select в середине слов, и в БД пройдут чистые union select
здесь идет не удаление юнионов, а их замена на тратата
|
|
|

25.04.2009, 13:35
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме: 791766
Репутация:
61
|
|
Оо нифига на 2 страницы растянули : )
Спасибо всем.
А как достать строку из браузера которую пользователь вводит?
Последний раз редактировалось Byrger; 25.04.2009 в 13:42..
|
|
|

25.04.2009, 13:35
|
|
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме: 1607210
Репутация:
1617
|
|
имел ввиду функцию mailbrush'a
2 PaCo:
А твой пример с тратата тупо будет заплевывать как как Юзера ошибками, так и БД левыми не рабочими запросами
Действительно куда тебе до меня супер умного ))))
__________________
Бойтесь своих желаний. Они могут исполниться....
...О-о-о-о, ушами не услышать, глазами не понять!
Последний раз редактировалось SQLHACK; 25.04.2009 в 13:38..
|
|
|

25.04.2009, 13:38
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
2 PaCo:
$input="http://site.ru/script.php?id=1+%75%6E%69%6F%6E+%73%65%6C%65%63%74 +1";
реальный пример:
Код:
http://www.cz-usa.com/product_detail.php?id=-7+%75%6E%69%6F%6E+%73%65%6C%65%63%74+1,2,3,4,version(),6/*
усовершенствуй код, и я его опять обойду, но уже за деньги 
|
|
|

25.04.2009, 13:39
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
Сообщение от Byrger
Оо нифига на 2 страницы растянули : )
Спасибо всем.
А как достать строку из праузера которую пользователь вводит?
PHP код:
echo htmlspecialchars($_SERVER['SCRIPT_URI']);
не забывай , если в базу заносишь фильтрацию на кавычки
На JavaScript :
PHP код:
alert(document.location.href);
SQLHACK, твой код тоже уязвим для мультибайтовых кодировок из-за ошибки в mysql_real_escape_string
жмяк
Последний раз редактировалось Chaak; 25.04.2009 в 13:47..
|
|
|

25.04.2009, 13:48
|
|
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме: 1754802
Репутация:
380
|
|
Сообщение от Pashkela
2 PaCo:
$input="http://site.ru/script.php?id=1+%75%6E%69%6F%6E+%73%65%6C%65%63%74 +1";
реальный пример:
Код:
http://www.cz-usa.com/product_detail.php?id=-7+%75%6E%69%6F%6E+%73%65%6C%65%63%74+1,2,3,4,version(),6/*
усовершенствуй код, и я его опять обойду, но уже за деньги 
Не хочу тебя растраивать но данные пришедшие из вне уже будут будут преобразованны в нормальный вид(попробуй зделать echo $_GET['id']) ), и если не делать повторного преобразования в коде то это НИЧЕГО НЕ ДАСТ, Byrger спросил как зделать так и так и я ответил, конечно же самый разумный вариант это проверка данный на соответсвия их типу прежде чем вставлять их в гвери.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|