【SRC挖掘实录】反序列化漏洞篇

反序列化漏洞篇


提示:所有渗透测试均是在授权情况下进行,漏洞已修复,且已经对敏感信息进行了脱敏处理,本文内容仅供参考学习,切勿模仿。


前言

在身份验证,文件读写,数据传输等功能处,在未对反序列化接口做访问控制,未对序列化数据做加密和签名,加密密钥使用硬编码(如Shiro 1.2.4),使用不安全的反序列化框架库(如Fastjson 1.2.24)或函数的情况下,由于序列化数据可被用户控制,攻击者可以精心构造恶意的序列化数据(执行特定代码或命令的数据)传递给应用程序,在应用程序反序列化对象时执行攻击者构造的恶意代码,达到攻击者的目的。


一、反序列化漏洞原理

首先我们需要了解一下序列化和反序列化的含义:
序列化是指Java对象转化为二进制内容,转换的原因就是为了便于网络传输和本地存储。
反序列化的含义是将相应的二进制转换为Java对象。
漏洞成因:当输入的反序列化的数据可以被用户控制,那么攻击者就可通过构造恶意输入,让反序列产生非预期对象,同时执行构造的恶意代码

常用函数:(php反序列化)围绕:serialize()和unserialize()这两个函数展开
常用的魔术函数:

 1、_construct()    #当一个对象创建时被调用
 2、_destruct()     #当一个对象被销毁时被调用
 3、_tostring()   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值