Сканер на наличие уязвимости конфигурации PHP-(Fast)CGI + frontend

Hint: flag is not a frag: once you've got it, you can get one more...

Чаще всего встречается данная уязвимость на серверах с nginx.

Конфигурация nginx + FastCGI по умолчанию:

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param script_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
} 

Уязвимость же сама в обработке pathinfo интерпретатором PHP при установленном параметре cgi.fix_pathinfo = On. Однако стоит отметить, что с какого-то момента в конфигурации PHP-FPM по умолчанию установлен white-list расширений файлов, которые будут исполняться. И это лишь .php-файлы.

Эксплуатация: /image.gif/.php или при помощи нулл-байта: /image.gif%00.php

Наклепал на php сканер, который по указанному гугл-дорку проверяет каждый url на наличие уязвимости.

Суть работы такова: Запрашивается robots.txt. Ежели он отсутствует, запрашивается favicon.ico. Затем к этому url прибавляется /.php или %00.php и сравнивается размер содержимого и content-type.

Если размер не изменился, а content-type стал text/html -- значит уязвимость присутствует.

Ссылка на сканер: http://ahack.ru/releases/nginx_scan.php.txt

Использование. Запускаете /nginx_scan.php?from=1&to=10&num=10 -- искать в гугле от страницы from до страницы to по num url на страницу.

Дорк измените в коде. Логи пишутся в nginxlogs.txt. Статистику смореть так: /nginx_scan.php?stat=1.

UPD: Проверка на данную уязвимость включена в WEB2.0 Detective