99

0x00 前言

nginx解析漏洞因为用户配置不当造成的漏洞。

解析格式:1.jpg/.php、1.jpg/%00.php,1.jpg会被当成php格式解析

nginx和iis7.x解析漏洞类似,都是加上/.php后文件以php格式解析。

配置文件vim /etc/php5/fpm/php.ini、vim /etc/php5/fpm/pool.d/www.conf

关键配置项: cgi.fix_pathinfo=1,security.limit_extensions=允许解析其他格式为php,则存在解析漏洞。

0x01 环境搭建

直接使用docker来搭建漏洞环境

下载漏洞环境:
git clone https://github.com/vulhub/vulhub.git
切换到nginx漏洞目录
cd vulhub/nginx/nginx_parsing_vulnerability/
启动环境:
docker-compose up -d

0x02 漏洞复现

搭建好的页面

上传一个图片马

使用burp获取返回的上传目录文件名

在图片后面加/.php,解析成功,可以看见php的一句话被执行了

使用中国蚁剑连接成功

0x03 总结

总体来说是因为配置不当造成的一个解析漏洞,实战环境下可以先测试是否存在解析漏洞,偷懒没有自己搭建直接使用的docker,可能漏洞理解不深刻。。

解决方法:

​ 主要是两个配置文件中配置不当造成的。

​ 修改配置文件vim /etc/php5/fpm/php.ini

​ 将cgi.fix_pathinfo=1,设置为0

​ 修改配置文件vim /etc/php5/fpm/pool.d/www.conf

​ 将security.limit_extensions=,设置为:

​ security.limit_extensions=.php,只允许php文件解析。