『河马』ImageMagick 命令注入漏洞利用工具



ImageMagick是一个功能强大的开源图形处理软件,可以用来读、写和处理超过90种的图片文件,包括流行的JPEG、GIF、 PNG、PDF以及PhotoCD等格式。使用它可以对图片进行切割、旋转、组合等多种特效的处理。

由于其功能强大、性能较好,并且对很多语言都有拓展支持,所以在程序开发中被广泛使用。许多网站开发者喜爱使用ImageMagick拓展来做web上的图片处理工作,比如用户头像生成、图片编辑等。
ImageMagick这次被曝出的漏洞应该算是一个本地的命令执行漏洞,危害不是太大,但是由于大量的web程序都使用了他的拓展,导致这些本地命令执行漏洞在web的环境里可以被远程触发,变成了危害巨大的远程命令执行。
命令执行漏洞是出在ImageMagick对https形式的文件处理的过程中。

ImageMagick之所以支持那么多的文件格式,是因为他内置了非常多的图像处理库,对于这些图像处理库,ImageMagick给他起了个名字叫做“Delegate”(委托),每个Delegate对应一种格式的文件,然后通过系统的system()命令来调用外部的程序对文件进行处理。

让漏洞危害进一步加大的是,ImageMagick支持通过.svg、.mvg(ImageMagick自定义的一种类似svg的格式)这种类型的文件来进行图形绘制,并允许在其中加载其他的delegate(比如存在漏洞的https delegate)。并且在图形处理的过程中,ImageMagick会自动根据其内容进行处理,也就是说我们可以将文件随意定义为png、jpg等网站上传允许的格式,这大大增加了漏洞的可利用场景。

比如我们生成一个exploit.png的文件,内容为:

push graphic-context
viewbox 0 0 640 480
fill 'url(isafe.cc" target="_blank">isafe.cc/image.jpg" target="_blank">https://www.isafe.cc" target="_blank">isafe.cc/image.jpg"|ls "-la)'
pop graphic-context
在其中我们使用了fill url()的形式调用存在漏洞的https delegate,当ImageMagick去处理这个文件时,漏洞就会被触发。

只允许会员下载 该文件只允许会员下载! 登录 | 注册

[本日志由 admin 于 2016-06-14 04:22 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 0day
评论: 0 | 引用: 0 | 查看次数: 1154
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭