Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   mysql_real_escape_string (https://forum.antichat.xyz/showthread.php?t=308180)

Pirotexnik 13.12.2011 12:31

Здравствуйте. Поставил DVWA, тренируюсь.

На 2-х уровнях безопасности провел инъекцию, на 3-м стоит сабж.

Как я понял обойти его можно, даже нужно. Только как?

PHP код:

PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]mysql_error[/COLOR][COLOR="#007700"]() .[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"]);

[/COLOR][COLOR="#0000BB"]$num[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_numrows[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$result[/COLOR][COLOR="#007700"]);

[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"];

while ([/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]'
[/COLOR][COLOR="#007700"];

echo
[/COLOR][COLOR="#DD0000"]'ID: '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$id[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'
First name: '
[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$first[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'
Surname: '
[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$last[/COLOR][COLOR="#007700"];

echo
[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]++;

}

}

}

[/COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 


Чакэ 13.12.2011 16:17

тебя обманули.

Pirotexnik 13.12.2011 17:50

Таки нет. По твоему это не проходимый квест?)

Чакэ 13.12.2011 18:49

по-моему тебя обманули.

stripslashes($id); это шикарно

phpdreamer 13.12.2011 18:59

http://php.net/manual/en/function.mysql-real-escape-string.php

Цитата:

Сообщение от None
Note:
If magic_quotes_gpc is enabled, first apply stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.

Если magic_quotes_gpc ON и сначала stripslashes, то получается 2-ой эскейп

magic_quotes_gpc - это единственная проблема у mysql-real-escape-string и она уходит в прошлое, потому что никто не включает эту опцию

KolosJey 13.12.2011 22:35

phpdreamer

Если ты считаешь что этот код уязвим, покажи реализацию плз.

Та цитата, которую ты привёл, говорит о том, что при MQ=on НАДО убирать слеши, и тут они убираются.

Но это не секурити проблема. Да, данные заэскейпяться дважды, но скуль ты не проведёшь, т.к. бекслеши тоже заэскейпятся.

Это можно было-бы проделать при mysql_escape_string которая не учитывает кодировку, но тут...

Да и это вобщем-то не всё. Даже если мы прорываем mysql_real_escape_string дальше идёт is_numeric, так что...

Вобщем у кого есть реальзация баги, было-бы интересно взглянуть, но я склоняюсь к тому, что разрабы курнули

Pirotexnik 13.12.2011 23:08

http://www.dvwa.co.uk/

Тренировачная площадка для хакера. 3 уровня сложности. Легкий и средний прошел, но тяжелый не выходит...

Чакэ 13.12.2011 23:33

Цитата:

Сообщение от None
Тренировачная площадка для хакера.

ohlol

alias6969 18.12.2011 21:44

ТС, верный ответ на твой вопрос - никак.

Konqi 18.12.2011 21:57

stripslashes и mysql_real_escape_string тут вообще никакой роли не играют, проверка входных данных осуществляется функцией is_numeric, а его ты не пройдешь никак


Время: 20:14