ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   Песочница (https://forum.antichat.io/forumdisplay.php?f=189)
-   -   обход фильтров (https://forum.antichat.io/showthread.php?t=255399)

qaz 24.01.2011 20:34

Как обойти функцию mysql_escape_string?

je0n 25.01.2011 16:07

Цитата:

Сообщение от qaz
Как обойти функцию mysql_escape_string?

если в скуль-запрос передается текстовый параметр, обработанный этой функцией, то никак (насколько я знаю). Если же целочисленный - то и обходить не надо просто юзай инъекцию без использвания кавычек внутри запроса. Текстовые значения для запроса в этому случае можно передавать как CHAR(...).

Вообще эта функция экранирует кавычки для скуль-запроса и еще что-то незначительное.

P.S. некоторые кодеры, без знания дела, и целочисленные значения фильтруют этой функцией, что НЕДОПУСТИМО. Я сам из таких кодеров был

qaz 25.01.2011 16:22

я просто в гугле читал што ета функция пропускает какуюто кодировку и которая понятна для mysql только вот где што и как нигде не обьясняется

je0n 26.01.2011 07:23

Цитата:

Сообщение от qaz
я просто в гугле читал што ета функция пропускает какуюто кодировку и которая понятна для mysql только вот где што и как нигде не обьясняется

можно линк?

Redwood 26.01.2011 08:24

http://raz0r.name/vulnerabilities/sql-inekcii-svyazannye-s-multibajtovymi-kodirovkami-i-addslashes/

je0n 26.01.2011 13:28

Цитата:

Сообщение от Redwood
http://raz0r.name/vulnerabilities/sql-inekcii-svyazannye-s-multibajtovymi-kodirovkami-i-addslashes/

это очень круто, хоть и легкие дровишки можно собрать только в азии, как я понял.

Баги для указанных функций доступны и в php последних версий?

Redwood 26.01.2011 17:20

mysql_escape_string (PHP 4 >= 4.0.3, PHP 5)

addslashes (PHP 4, PHP 5)

Seravin 26.01.2011 17:29

Цитата:

Сообщение от je0n
если в скуль-запрос передается текстовый параметр, обработанный этой функцией, то никак (насколько я знаю). Если же целочисленный - то и обходить не надо
просто юзай инъекцию без использвания кавычек внутри запроса. Текстовые значения для запроса в этому случае можно передавать как CHAR(...).
Вообще эта функция экранирует кавычки для скуль-запроса и еще что-то незначительное.
P.S. некоторые кодеры, без знания дела, и целочисленные значения фильтруют этой функцией, что НЕДОПУСТИМО. Я сам из таких кодеров был

эм... хотелось бы поинтересоваться почему недопустимо?

qaz 26.01.2011 18:27

Цитата:

Сообщение от Redwood
http://raz0r.name/vulnerabilities/sql-inekcii-svyazannye-s-multibajtovymi-kodirovkami-i-addslashes/

я вот только чёт не понял

Код:


ничего не происходит, почему? разор в своём блоге от фонаря всё штоли пишет?

Seravin 26.01.2011 19:28

уязвимость в мультибайтовых кодировках BIG5, EUC-JP, EUC-KR, GB2312 и SHIFT_JIS и др. utf-8 хоть и мультибайтовый, но под данную уязвимость не попадает (c)

~d0s~ 26.01.2011 19:52

Цитата:

Сообщение от Seravin
эм... хотелось бы поинтересоваться почему недопустимо?

Думаю он имел ввиду,что если знаешь что должно быть число,то легче юзать преобразование типов: (int),intval,settype или например проверять is_numeric,etc...

qaz

Перечитай статью,ты ничего не понял.

Seravin 26.01.2011 20:47

ну я например делаю так

Код:

"SELECT * FROM table WHERE id = '".mysql_real_escape_string($_GET['id'])."' and name = '".mysql_real_escape_string($_GET['name'])."'";
id число

name строка

qaz 26.01.2011 23:59

Цитата:

Сообщение от ~d0s~
Думаю он имел ввиду,что если знаешь что должно быть число,то легче юзать преобразование типов: (int),intval,settype или например проверять is_numeric,etc...
qaz
Перечитай статью,ты ничего не понял.

я уже раз 20 перечитал, серовно чёт не плучается, што я не понял?, хелп

je0n 28.01.2011 08:39

Цитата:

Сообщение от Seravin
ну я например делаю так
Код:

"SELECT * FROM table WHERE id = '".mysql_real_escape_string($_GET['id'])."' and name = '".mysql_real_escape_string($_GET['name'])."'";
id число
name строка

а кто-то делает так:

PHP код:

[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#DD0000"]"select * from table where id="[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]mysql_escape_string[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]]);

[/
COLOR][/COLOR

qaz

походу БД должна быть в любой кодировке, совместимой с asci, а на сайте использоваться одна из перечисленных в статье.

Если я правильно все это понимаю, то в таком несоответствии возможна инъекция...


Время: 17:52