漏洞介绍
漏洞编号
CVE-2013-4547
漏洞原理
Nginx 在遇到"%00 空字节"时,与后端 FastCGI 处理不一致,导致可以在图片中嵌入 PHP 代码,然后通过访问 "xxx.jpg%00.php" 来执行其中的代码
影响版本
Nginx 0.8.41~1.4.3
Nginx 1.5.0 ~1.5.7
环境搭建
cd /nginx/CVE-2019-4547/
docker-compose up -d
访问 靶机IP:8080 验证靶场是否正常启动
漏洞复现
创建一个名为 phpinfo.jpg 的文件,在其中写入 PHP 脚本
通过网页上传,并使用 BP 抓包
在文件上传时,需要在文件名后添加一个空格
文件成功上传
访问文件时在文件名后添加一个空格和随意一个字母占位,为了之后在BP中好修改。通过BP抓包后可以发现空格被进行了编码,将%20修改会空格
点击 Hex 找到字母的位置,将该字母修改为00,前面的 "20" 是指的 [0x20] ,后面的 "00" 是 [0x00]
放包,就可以发现 php 语句被执行了