漏洞原理
漏洞出现的主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的影响。 Nginx匹配到.php结尾请求,会发生给fastcgi解析 在关闭pathinfo情况下只有.php后缀文件才会被发生给fastcgi解析。
Nginx简介
Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占内存小、并发能力强;国内使用Nginx的有百度、京东、新浪、网易、腾讯、淘宝等
此漏洞环境通过 vulhub 项目启动
1、启动环境
cd ~/vulhub/nginx/ngix_parsing_vulnerability
Sudo docker-compose up -d
2、访问网站
3、利用
上传文件,并访问
解析成功
使用蚁剑连接成功
修复建议
- 在php版本比较低时,将php.ini文件中的cgi.fix_pathinfp的值设置为0,即关闭cgi解析
- php-fpm.conf中的 security.limit_extensions =.php,即仅支持.php后缀解析