目录
[编辑 2.4制作成功结果](#编辑 2.4制作成功结果)
一、准备环境
ubentu虚拟机,docker环境,vulhub-master环境包(资源已上传)
二、实验开始
2.1上传压缩包并解压
unzip vulhub-master.zip
2.2进入目录,开始制作镜像
/root/vulhub-master/nginx/nginx_parsing_vulnerability
docker-compose up -d
2.3可能会受之前环境影响,删除即可
可能80端口冲突,关闭nginx即可
docker rm -f $(docker ps -aq)
2.4制作成功结果
2.5我们的环境一个nginx一个php
docker ps -a
2.6访问漏洞
访问http://your-ip/uploadfiles/nginx.png
和http://your-ip/uploadfiles/nginx.png/.php
即可查看效果。
2.7漏洞触发结果
增加/.php
后缀,被解析成PHP文件
2.8上传代码不存在漏洞
2.9补充:在nginx放通了解析php才会去解析
2.10看看这个漏洞图片吧
可以见得此图片中有个php的简单打印代码,打印php常数,说明我图片中添加php代码就可以以php执行,但是正常来说我的图片根本解析不了php代码,为什么会出现上面我们所说的漏洞呢?
三、真正原因
用户配置不当造成的漏洞,那好吧,看看用户配置
cd /root/vulhub-master/nginx/nginx_parsing_vulnerability/php-fpm
这个文件含义,你的后缀安全限制为空
因为我们php文件是从下往上找的,不管你的后缀.php正确与否,都没有,会往上找,找到图片,把图片当成php代码解析了
五、如何防范:
安全后缀添加个.php直接 不解析了---用户配置问题
php.ini中又有cgi.fix pathinfo这个参数,这个参数的意思为修复漏洞信息,把这个开启,它就不会往前找,但是用户如果关掉了,那么上面的漏洞自然也就执行了
完全人为的漏洞