Злоумышленник должен загрузить на сервер файл с пробелом в имени файла на конце с активным содержимым. После загрузки можно обратиться к файлу, использую запрос
[url_host][url_pth]"/file \0.php"
Если все зависимости выполняются - данный файл интерпретируется как PHP скрипт.
Это возможно, благодаря присутствию следующих строк в конфиге Nginx
Код:
location ~ \.php$ {
fastcgi_pass…
}
Единственное в чём будут трудности - загрузить на сервер файл с пробелом в имени файла на конце, минуя все преобразования внутри CMS, включая функцию trim().
Конечно, есть определённые зависимости:
Цитата:
Сообщение от None
Применительно к nginx + php5-fpm должны соблюдаться следующие условия для эксплуатации уязвимости:
1) fastcgi_param PATH_TRANSLATED должнен быть вида $document_root/$fastcgi_script_name, т.е. значение скрипта берется из реквеста
2) в конфиге fpm pool значение ecurity.limit_extensions должно пропускать любые файлы. По-умолчанию она выставлена в .php .php3 .php4 .php5
Уже пришли к мнению, что тут нужно средоточие факторов, комбинацию которых хрен найдешь.
Вообще, если посмотреть на проблему массовых взломов, то перед злоумышленниками встаёт 3 проблемы:
1) Обойти функцию trim() в CMS.
2) Обойти resize картинки в случае загрузки исполняемого кода как изображения.
3) Обойти переименовывание файлов после аплоадинга.
Если 2 и 3 пункт ещё могут как-то решиться, например, этим способом, и нахождением CMS, где загруженные файлы не переименовываются. То обход первого пункта — наиболее трудный.
А в совокупности все 3 проблемы очень сильно ограничивают злоумышленников в своих массовых взломах. Так что по сути, бояться сильно то и нечего.