nginx+php服务器中的SCRIPT_FILENAME漏洞

比较熟知的一个漏洞,貌似nginx代码上,至今没有进行修补。

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

详细在http://www.80sec.com/nginx-securit.html

具体实验,可以在nginx的log中,打开debug,查看获得的SCRIPT_FILENAME名称。

解决方法:

设置php.ini文件中的cgi.fix_pathinfo参数为0

或者
在nginx代码中加入:
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}

你可能感兴趣的:(script)