(Python)PyYAML反序列化漏洞

本文介绍了PyYAML反序列化漏洞的基本概念,通过示例代码展示了漏洞利用方式,分析了漏洞根源,并提供了通用payload和检测、防御方法。建议使用yaml.safe_load()避免风险。
摘要由CSDN通过智能技术生成

基本概念

(引用百度)YAML是“YAML不是一种标记语言”的外语缩写;但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。

PyYAML是Python中YAML语言的编辑器和解释器。

安装:pip install PyYAML

两个函数:

yaml.dump():将一个Python对象序列化生成为yaml文档。

yaml.load():将一个yaml文档反序列化为一个Python对象。

简单的用例:

可以看到,User对象经过yaml序列化之后内容为一行字符串,简单解释一下:“!!pythonobject”为yaml标签,yaml.load()会识别该标签并调用相应的方法执行反序列化操作;冒号后面的“__main__”为py文件名,这里为本文件的意

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值