Nginx如下版本:
0.5.*, 0.6.*, 0.7 <= 0.7.65, 0.8 <= 0.8.37
在使用PHP-FastCGI執行php的時候,URL里面在遇到%00空字節時與FastCGI處理不一致,導致可在非php文件中嵌入php代碼,通過訪問url+%00.php來執行其中的php代碼。如:http://local/robots.txt%00.php會把robots.txt文件當作php來執行。
目前還有許多nginx的低版本服務器存在此漏洞,要養成禁止上傳文件目錄下執行php的好習慣。
臨時解決辦法,在nginx虛擬機配置或者fcgi.conf配置加如下代碼:
if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 403;
}
當然升級到最新版本的nginx可以很好解決問題。



