1. 漏洞描述
- 漏洞编号: CVE-2016-3714
- 发现人员: Slack安全工程师Ryan Hube
- 漏洞简述: 产生原因是因为字符过滤不严谨所导致的执行代码. 对于文件名传递给后端的命令过滤不足,导致允许多种文件格式转换过程中远程执行代码。
- 影响版本:
- ImageMagick6.5.7-8 2012-08-17
- ImageMagick6.7.7-10 2014-03-06
- 低版本至6.9.3-9 released 2016-04-30
2. 漏洞分析
2.1 漏洞介绍
ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、 PNG、PDF以及PhotoCD等格式。众多的网站平台都是用他渲染处理图片。可惜在3号时被公开了一些列漏洞,其中一个漏洞可导致远程执行代码(RCE),如果你处理用户提交的图片。该漏洞是针对在野外使用此漏洞。许多图像处理插件依赖于ImageMagick库,包括但不限于PHP的imagick,Ruby的rmagick和paperclip,以及NodeJS的ImageMagick等。
产生原因是因为字符过滤不严谨所导致的执行代码. 对于文件名传递给后端的命令过滤不足,导致允许多种文件格式转换过程中远程执行代码。
据ImageMagick官方,目前程序存在一处远程命令执行漏洞(CVE-2016-3714),当其处理的上传图片带有攻击代码时,可远程实现远程命令执行,进而可能控制服务器,此漏洞被命名为ImageTragick。
2.2 漏洞环境搭建
- 首先我们需要一台Linux虚拟机(这里我用的是Ubuntu14.04)
- 找到相应的有漏洞的ImageMagick版本源码进行源码安装注意:这个进行源码安装时可能会存在安装时先安装他的依赖包否则安装会报错
- 安装完成,使用命令
convert -version
查看安装是否成功,并且查看版本是否正确
- 要实现远程代码执行,还需要自己搭建一个服务器
- 安装Apache+php,实现一个上传图片的网站,同