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

本文介绍了GhostScript的一个安全漏洞,该漏洞允许攻击者通过构造恶意的图片内容绕过安全沙箱,导致命令执行、文件读取和删除。攻击者在文件上传过程中利用GhostScript处理图片时可触发此漏洞。修复方案包括限制GhostScript的某些代码解析权限。

漏洞概述

①漏洞简介

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

②GhostScript

GhostScript 是一套建基于Adobe、PostScript及可移植文档格式(PDF)的页面描述语言等而编译成的免费软件。Ghostscript 可以查看及打印 PS、EPS、PDF 文件,GhostScript 被许多图片处理库所使用。

③漏洞影响

在文件上传过程中,有可能会用GhostScript来处理图片,可以伪装图片利用GhostScript执行命令。

漏洞复现

①环境搭建

使用docker启动ghostscript_CVE-2018-16509环境

root@kali:/home/zj/桌面/vulhub/ghostscript/CVE-2018-16509# docker-compose up -d

服务启动后,访问http://172.17.0.1:8080,可看见文件上传按钮。

②浏览poc.png,并提交查询

poc.png

%!PS
userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /Ou
Ghostscript 是一个广泛使用的处理 PostScript 和 PDF 文件的软件,它被许多图像处理库(如 ImageMagick 和 Python PIL)集成,用于图像转换和渲染。CVE-2018-15910 是 Ghostscript 中的一个沙箱绕过漏洞,攻击者可以利用该漏洞执行任意命令、读取或删除文件,从而对系统造成严重威胁。 ### 漏洞原理 Ghostscript 提供了一个安全沙箱机制,用于限制 PostScript 代码在解析过程中的权限,防止恶意内容对系统造成危害。然而,在 CVE-2018-15910 中,攻击者可以通过构造特定的 PostScript 代码,绕过沙箱机制,实现对系统资源的非法访问。漏洞的核心在于 Ghostscript 对某些内置操作符的处理方式存在缺陷,攻击者可以利用这些操作符访问受限资源,例如执行系统命令或写入任意文件。 具体而言,攻击者可以构造一个恶意的 PostScript 文件,通过 `%pipe%` 或 `%command%` 等特殊文件操作符调用系统命令,从而绕过沙箱限制。由于 Ghostscript 在默认配置下不会对这些操作进行严格限制,攻击者可以借此实现远程代码执行[^1]。 ### 利用方式 该漏洞的利用方式通常涉及构造一个包含恶意 PostScript 代码的图片文件(如 PDF 或 EPS 文件),当目标系统使用 Ghostscript 对该文件进行处理时,便会触发漏洞。常见的利用方式包括: 1. **命令执行**:通过 `%pipe%` 操作符调用系统命令,例如执行 `id`、`whoami` 或启动反向 shell。 ```postscript (%pipe%id > /tmp/output) (w) file ``` 2. **文件读取**:通过文件操作符读取敏感文件内容,例如 `/etc/passwd`。 ```postscript (/etc/passwd) (r) file ``` 3. **文件写入**:通过写入特定文件实现持久化控制或进一步攻击。 ```postscript (%pipe%echo "malicious code" > /tmp/malicious.sh) (w) file ``` 攻击者通常会将这些恶意内容嵌入图片文件中,上传至目标系统后,当系统使用 Ghostscript 进行处理时即可触发漏洞。 ### 修复方案 针对 CVE-2018-15910,Ghostscript 官方发布了安全更新,修复了沙箱机制中的漏洞。以下是推荐的修复措施: 1. **升级 Ghostscript 版本**:确保使用 Ghostscript 9.24 或更高版本,官方在该版本中修复了多个沙箱绕过漏洞。 2. **限制 Ghostscript 权限**:以最小权限运行 Ghostscript,避免其以 root 权限执行。 3. **禁用危险操作符**:在 Ghostscript 的配置文件中禁用 `%pipe%` 和 `%command%` 等危险操作符,防止其被用于执行系统命令。 4. **输入验证与过滤**:对用户上传的文件进行严格的内容检查,防止恶意 PostScript 代码被解析。 5. **使用替代库**:对于不依赖 Ghostscript 的图像处理任务,考虑使用更安全的替代库或工具链。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Redredredfish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值