Просмотр полной версии : обход фильтров
Как обойти функцию mysql_escape_string?
Как обойти функцию mysql_escape_string?
если в скуль-запрос передается текстовый параметр, обработанный этой функцией, то никак (насколько я знаю). Если же целочисленный - то и обходить не надо просто юзай инъекцию без использвания кавычек внутри запроса. Текстовые значения для запроса в этому случае можно передавать как CHAR(...).
Вообще эта функция экранирует кавычки для скуль-запроса и еще что-то незначительное.
P.S. некоторые кодеры, без знания дела, и целочисленные значения фильтруют этой функцией, что НЕДОПУСТИМО. Я сам из таких кодеров был
я просто в гугле читал што ета функция пропускает какуюто кодировку и которая понятна для mysql только вот где што и как нигде не обьясняется
я просто в гугле читал што ета функция пропускает какуюто кодировку и которая понятна для mysql только вот где што и как нигде не обьясняется
можно линк?
http://raz0r.name/vulnerabilities/sql-inekcii-svyazannye-s-multibajtovymi-kodirovkami-i-addslashes/
http://raz0r.name/vulnerabilities/sql-inekcii-svyazannye-s-multibajtovymi-kodirovkami-i-addslashes/
это очень круто, хоть и легкие дровишки можно собрать только в азии, как я понял.
Баги для указанных функций доступны и в php последних версий?
mysql_escape_string (PHP 4 >= 4.0.3, PHP 5)
addslashes (PHP 4, PHP 5)
если в скуль-запрос передается текстовый параметр, обработанный этой функцией, то никак (насколько я знаю). Если же целочисленный - то и обходить не надо
просто юзай инъекцию без использвания кавычек внутри запроса. Текстовые значения для запроса в этому случае можно передавать как CHAR(...).
Вообще эта функция экранирует кавычки для скуль-запроса и еще что-то незначительное.
P.S. некоторые кодеры, без знания дела, и целочисленные значения фильтруют этой функцией, что НЕДОПУСТИМО. Я сам из таких кодеров был
эм... хотелось бы поинтересоваться почему недопустимо?
http://raz0r.name/vulnerabilities/sql-inekcii-svyazannye-s-multibajtovymi-kodirovkami-i-addslashes/
я вот только чёт не понял
ничего не происходит, почему? разор в своём блоге от фонаря всё штоли пишет?
уязвимость в мультибайтовых кодировках BIG5, EUC-JP, EUC-KR, GB2312 и SHIFT_JIS и др. utf-8 хоть и мультибайтовый, но под данную уязвимость не попадает (c)
эм... хотелось бы поинтересоваться почему недопустимо?
Думаю он имел ввиду,что если знаешь что должно быть число,то легче юзать преобразование типов: (int),intval,settype или например проверять is_numeric,etc...
qaz
Перечитай статью,ты ничего не понял.
ну я например делаю так
"SELECT * FROM table WHERE id = '".mysql_real_escape_string($_GET['id'])."' and name = '".mysql_real_escape_string($_GET['name'])."'";
id число
name строка
Думаю он имел ввиду,что если знаешь что должно быть число,то легче юзать преобразование типов: (int),intval,settype или например проверять is_numeric,etc...
qaz
Перечитай статью,ты ничего не понял.
я уже раз 20 перечитал, серовно чёт не плучается, што я не понял?, хелп
ну я например делаю так
"SELECT * FROM table WHERE id = '".mysql_real_escape_string($_GET['id'])."' and name = '".mysql_real_escape_string($_GET['name'])."'";
id число
name строка
а кто-то делает так:
"select * from table where id=".mysql_escape_string($_GET['id']);
qaz
походу БД должна быть в любой кодировке, совместимой с asci, а на сайте использоваться одна из перечисленных в статье.
Если я правильно все это понимаю, то в таком несоответствии возможна инъекция...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot