概述
最近刚出了ImageMagick命令执行漏洞,于是复现了一波,结果安装过程遇到了不少麻烦,特地记录下。
安装
|
|
输入
|
|
|
|
这样就安装完毕了ImageMagick,下面安装php扩展
|
|
错误以及解决方法
运行/usr/local/webserver/php/bin/phpize时出现:
|
|
解决方法:
|
|
如果出现如下错误:
|
|
解决方法:
|
|
如果出现如下错误:
|
|
解决方法:
|
|
如果出现如下错误:
|
|
解决方法:
|
|
原理分析
与这个漏洞相关的CVE有CVE-2016-3714、CVE-2016-3715、CVE-2016-3716、CVE-2016-3717,其中最严重的就是CVE-2016-3714,利用这个漏洞可以造成远程命令执行的危害。
ImageMagick有一个功能叫做delegate(委托),作用是调用外部的lib来处理文件。而调用外部lib的过程是使用系统的system命令来执行的.
在ImageMagick的默认配置文件里可以看到所有的委托:/etc/ImageMagick/delegates.xml
拼接完毕的命令行传入了系统的system函数,而我们只需使用反引号(`)或闭合双引号,来执行任意命令。
漏洞复现
ImageMagick popen_utf8命令注入
- 漏洞版本: ImageMagick 6.9.3-9及以下
其实就是文件名引发的命令执行。
payload :
|
|
ImageMagick 命令注入
- 漏洞版本: ImageMagick 6.9.3-9及以下
payload :
|
|
|
|
将以上内容保存为test.png图片,执行convert test.png 1.png,就会执行命令。