ImageMagick漏洞任意命令执行(CVE-2016-3714)

作者: const27 分类: All,RCE 发布时间: 2020-06-27 16:42

参考 https://www.leavesongs.com/PENETRATION/CVE-2016-3714-ImageMagick.html

何为ImageMagick

简而言之,就是一个处理图片的程序。

RCE

ImageMagick有一个功能叫做 delegate(委托),作用是调用外部的lib处理文件。
在ImageMagick的配置文件 /etc/ImageMagick/delegates.xml 可以看到所有的委托(自己去看)

它的委托一般是长这样的,意思是在处理https图片时,会调用command的里的指令.command里的%m代表一种占位符,%m占位符代表获取https图片的url(当然占位符不仅仅%m一种,还有 比如%i是输入的文件名,%l是图片exif label信息 等等等等)

<delegate decode="https" command="&quot;curl&quot; -s -k -o &quot;%o&quot; &quot;https:%M&quot;"/>

ImageMagick默认支持一种图片格式,叫mvg,而mvg与svg格式类似,其中是以文本形式写入矢量图的内容,而这其中就可以包含https处理过程。 所以我们可以构造一个mvg文件(文件名后缀不一定非得.mvg,imagemagick是按照文件内容来区分文件类型的)交给imagemagick处理,在其包含https处使用|或&分割命令,造成rce,如

push graphic-context
viewbox 0 0 640 480
fill 'url(https://"|mkdir /nmsl; ")'
pop graphic-context

上面是mvg的一种格式,其中在fill处填入https的url.

实践

靶机安装了imagemagick.我们找一个能够处理图片的点,比如文件上传就有可能会调用imagemagick

发包

证实

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

标签云