ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、PNG、PDF以及PhotoCD等格式,众多的网站平台都是用他渲染处理图片。但在2016年5月3日,ImageMagick披露了一个严重的漏洞,该漏洞的利用十分简单,通过上传一个恶意图像到目标Web服务器上,攻击者就可以执行任意代码,窃取用户账号等重要信息。该漏洞的产生原因是因为字符过滤不严谨,对文件名传递给后端的命令过滤不足,导致允许多种文件格式转换过程中可以远程执行代码。
以Linux操作系统为例:
vi imd.jpg
push graphic-context viewbox 0 0 640 480 fill 'url(https://example.com/image.jpg"|ls "-la)' pop graphic-context
./convert imd.jpg imd.png
如果输出结果列出了当前目录的内容,则说明该版本的ImageMagick存在此漏洞,如下图所示:
介质下载地址:http://www.imagemagick.org/script/binary-releases.php
文件路径:wcm/WEB-INF/classes/ TRSWCMPhoto.properties。修改文件中指定的ImageMagick组件的路径,例如:
CMD_CONVERT=/usr/local/bin/convert CMD_COMPOSITE=/usr/local/bin/composite CMD_IDENTIFY=/usr/local/bin/identify
注意:
Windows环境下,低版本的ImageMagick目前没有发现存在次安全问题,但是也建议升级到最新的7.0.1-3。