启动环境
sudo docker-compose up -d
查看端口号
![](https://img-blog.csdnimg.cn/ae83074b237d4f68b8ec6f580df47158.png)
服务启动后,访问http://your-ip:8080可以看到图片上传框:
![](https://img-blog.csdnimg.cn/e074f1edc84745799ef191157c14129c.png)
利用这个漏洞,需要先准备一个恶意PNG文件,文件内容中包含我们准备读取的文件路径,可以使用poc.py来生成这个图片:
python3 poc.py generate -o poc.png -r /etc/passwd
执行poc.py前需要先安装PyPNG:
获得恶意图片
![](https://img-blog.csdnimg.cn/239647c8e5b64a7795bc22ef79da1ba8.png)
将恶意图片上传至目标服务中
![](https://img-blog.csdnimg.cn/c191b9a432ca48f4bc504bdc47f94568.png)
将网页生成的图片进行下载
![](https://img-blog.csdnimg.cn/a1a17339759c48b5bdd1d08a051fe59d.png)
使用poc.py提取出其中所有内容:
python3 poc.py parse -i out.png
可以看到,已经提取出/etc/passwd文件的内容,这部分内容是由ImageMagick在处理旧图片时读取并写入到新图片中。
![](https://img-blog.csdnimg.cn/245b733fe1fe4efbb142451471900ad2.png)