在PHP中使用FastCGI解析漏洞分析及修复方案介绍
作者:admin发布时间:2021-11-03分类:软件教程浏览:评论:0
导读:漏洞描述:Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问http://192.168.1.102/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为phpinfo.jpg/1.php,然后构造成SCRIPT_FILENAME传递给PHPCGI
系统漏洞叙述:
Nginx默认设置是以CGI的方法适用PHP分析的,广泛的作法是在Nginx环境变量中根据正则匹配设定SCRIPT_FILENAME。当浏览http://192.168.1.102/phpinfo.jpg/1.php这一URL时,$fastcgi_script_name会被配置为“phpinfo.jpg/1.php”,随后结构成SCRIPT_FILENAME传送给PHP CGI。假如PHP中打开了fix_pathinfo这一选择项,PHP会觉得SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,因此才会将phpinfo.jpg做为PHP文件来分析了。
系统漏洞伤害:
WebServer Fastcgi配备不合理,会导致其他文件(比如css,js,jpg等静态数据文档)被当做php脚本制作分析实行。当我们将故意脚本制作webshell改成静态数据上传文件到webserver传送给后面php分析实行后,会让敌人得到网络服务器的实际操作管理权限。
修补计划方案:
(Nginx客户能够挑选计划方案一或计划方案二,IIS客户请应用计划方案一)
计划方案一,改动php.ini文件,将cgi.fix_pathinfo的值设定为0。进行后请重新启动PHP和NGINX(IIS)。
计划方案二,在Nginx环境变量中加上下列编码:
if ( $fastcgi_script_name ~ ..*/.*php ) {
return 403;
}
这行编码的意思是当配对到相近test.jpg/a.php的URL时,将回到403错误码。改动进行后请重新启动Nginx。
标签:FastCGI
你 发表评论:
欢迎- 软件教程排行
- 最近发表