Имея нечто подобное:
[PHP]
PHP:
[COLOR="#000000"]$file=$_GET['file'];
echo eval('?>join("",file("dir/'.$file.'"))[COLOR="#0000BB"]
В вашем же примере, данные для обработки в
eval, это строка получаемая в результате склейки содержимого файла. Пользовательский ввод из
$_GET['file'], сначала обрабатывается функцией
file, далее строки склеиваются и только этот результат попадает в конечную строку обрабатываемую
eval.
Для успешной атаки, вам нужно загрузить свой файл на сервер. Примерно с таким содержимым:
PHP код:
PHP:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]
[/COLOR][/COLOR]
Сделать это можно разными способами, используя встроенный функционал скриптов, загрузка картинок как пример. Взломать сайт по соседству и разместить свой файл во временной директории. Если же такой возможности нет, можно использовать файлы
сессий PHP,
временные файлы,
лог файлы и procfs.
После успешной отправки и определения точного местоположения вашей нагрузки, ипользовать найденную вами уязвимость, примерно в таком виде:
Код:
Code:
http://your-site.com/vulnerable-script.php?file=/tmp/sess_db459ddca34fd63261084684bed71f7c&code=phpinfo();