专栏首页FreeBuf安全预警:ImageMagick图象处理软件远程代码执行漏洞(CVE-2016-3714)

安全预警:ImageMagick图象处理软件远程代码执行漏洞(CVE-2016-3714)

ImageMagick是一款广泛流行的图像处理软件,有无数的网站使用它来进行图像处理,但在本周二,ImageMagick披露出了一个严重的0day漏洞,此漏洞允许攻击者通过上传恶意构造的图像文件,在目标服务器执行任意代码。Slack安全工程师Ryan Hube发现了这一0day漏洞。

如果你在网站中使用了ImageMagick去识别,裁剪或者调整用户上传的图像,你必须确认已经使用了这些缓解措施,并且调整你的代码只接受有效的图像文件,沙盒ImageMagick也是一个不错的主意。

在这个安全漏洞公布之后,这一漏洞的EXP也随即被发布,并被命名为:ImageTragick。漏洞的EXP已经通过邮件和论坛广泛传播,所以如果你使用了ImageMagick去处理用户输入,请立即采取相应的缓解措施。

ImageMagick被许多编程语言所支持,包括Perl,C++,PHP,Python和Ruby等,并被部署在数以百万计的网站,博客,社交媒体平台和流行的内容管理系统(CMS),例如WordPress和Drupal。

该漏洞的利用十分简单,通过上传一个恶意图像到目标Web服务器上,攻击者就可以执行任意代码,窃取重要信息,用户帐户等。

换句话说,只有采用了ImageMagick,且允许用户上传图像的网站,才会受到影响。

ImageMagick团队已经承认了此漏洞,称:

最近发布的漏洞报告......包含可能存在的远程代码执行。

虽然该团队还没有公布任何安全补丁,但它建议网站管理者应该在配置文件中添加几行代码去阻止攻击,至少在某些情况下可以防御。

Web管理员同时被建议在文件发送给ImageMagick处理前,检查文件的magic bytes。Magic bytes是一个文件的前几个字节,被用于识别图像类型,例如GIF,JPEG和PNG等。

为了让你更好地了解你将要面对的漏洞,下面提供一个可以瞒过ImageMagick的示例文件:

示例

push graphic-context

viewbox 0 0 640 480

fill 'url(https://example.com/image.jpg"|ls "-la)'

pop graphic-context

将其保存为任意的扩展名,例如expoit.jpg,然后通过ImageMagick去运行它

expoit.jpg

convert exploit.jpg out.png

是的,ImageMagick将会去执行嵌入的代码:ls -l命令。

将这条命令替换为其它的恶意命令,将会直接威胁到目标机器,不过你可能会触犯一些法律。


该漏洞将在ImageMagick 7.0.1-1和6.9.3-10版本中被修补,这些新版本预计将在周末前被公布。

预警:

ImageMagick的这个远程代码执行漏洞也将波及Wordpress博客网站以及Discuz论坛!有使用imageMagic模块来处理图片业务的公司&站长请注意:头像上传、证件上传、资质上传等方面的点尤其是使用到图片(批量)裁剪的业务场景!

漏洞描述:

据ImageMagick官方,目前程序存在一处远程命令执行漏洞(CVE-2016-3714),当其处理的上传图片带有攻击代码时,可远程实现远程命令执行,进而可能控制服务器,此漏洞被命名为ImageTragick。

ImageMagick是一款开源图片处理库,支持PHP、Ruby、NodeJS和Python等多种语言,使用非常广泛。包括PHP imagick、Ruby rmagick和paperclip以及NodeJS imagemagick等多个图片处理插件都依赖它运行。

可能的影响范围包括各类流行的内容管理系统(CMS)。

影响影响范围:

1

调用ImageMagick的库实现图片处理和渲染的应用。 ImageMagick为多种语言提供了api。

2

很多流行的内容管理系统(CMS)使用了ImageMagick,例如Wordpress的图片处理插件已被证实存在远程命令执行的漏洞(Author及以上权限用户执行)。

其他例如MediaWiki、phpBB和vBulletin使用了ImageMagick库生成缩略图,还有一些程序如LyX使用ImageMagick转换图片格式。以上应用可能受到此漏洞影响。

3

如果通过shell 中的convert 命令实现一些图片处理功能,也会受到此漏洞影响。

漏洞等级:

高危

解决方案:官方方案

通过配置策略文件暂时禁用ImageMagick,可在“/etc/ImageMagick/policy.xml” 文件中添加如下代码:

添加代码

<policymap>

<policy domain="coder" rights="none" pattern="EPHEMERAL" />

<policy domain="coder" rights="none" pattern="URL" />

<policy domain="coder" rights="none" pattern="HTTPS" />

<policy domain="coder" rights="none" pattern="MVG" />

<policy domain="coder" rights="none" pattern="MSL" />

</policymap>

* 原文链接:thehackernews,theregister,watcher编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-05-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Facebook反垃圾实践:人工治理与机器算法齐飞

    2016年末,Facebook上的假新闻帮助特朗普胜选的消息,将这家社交网站推到一个尴尬的境地,迫使它上线一个“争议(Disputed)标签”功能,用来标记被认...

    FB客服
  • 看看影音恶意挖矿行为分析

    近日,部分用户出现电脑GPU占用率高,电脑温度升高,风扇噪声增大等问题。具体现象为电脑中C盘可使用空间骤降,且在C盘Ethash文件夹内,发现存在大量的1G左右...

    FB客服
  • Wannacry蠕虫勒索软件处置流程及方案

    Wannacry蠕虫勒索软件处置流程及工具包 1、背景 5月12日晚,一款名为Wannacry 的蠕虫勒索软件袭击全球网络,这被认为是迄今为止最巨大的勒索交...

    FB客服
  • 用ASP.NET Core 2.1 建立规范的 REST API -- 保护API和其它

    http://www.cnblogs.com/cgzl/p/9010978.html

    solenovex
  • 重磅译制 | 更新:牛津大学xDeepMind自然语言处理 第6讲(下)NLP硬件和软件-英伟达GPU

    大数据文摘
  • Flash:DisplayObject的transform/matrix的潜规则、小bug

    用户1258909
  • 代理模式(Proxy Pattern)- 最易懂的设计模式解析

    b. 使用步骤 步骤1: 创建抽象对象接口(Subject):声明你(真实对象)需要让代购(代理对象)帮忙做的事(买Mac)

    Carson.Ho
  • SAP CRM CUSTOMER_H扩展字段的设计原理

    If we add new extension field to include structure INCL_EEW_CUSTOMER_H via AET o...

    Jerry Wang
  • RxJava2 实战知识梳理(5) - 简单及进阶的轮询操作

    今天,我们介绍一种新的场景,轮询操作。也就是说,我们会尝试间隔一段时间就向服务器发起一次请求,在使用RxJava之前,该需求的实现一般有两种方式:

    用户2802329
  • 不是所有的程序员都适合转管理,但是领导力可以有套路练就

    最近很多小伙伴对技术栈管理的话题比较感兴趣,我们就继续这个话题,本次分享来自一位贴吧的程序员老司机,他亲自尽力过从技术转向管理岗位,我们听听他的分享:

    JAVA高级架构开发

扫码关注云+社区

领取腾讯云代金券