网站大量收购闲置独家精品文档,联系QQ:2885784924

BurpWeb安全学院[不安全的反序列化].pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

BurpWeb安安全全学学院院[不不安安全全的的反反序序列列化化]

介介绍绍

burpsuite官⽹上⼀套不安全的反序列化实验(免费)

本⽂是在这个实验室学习的记录

针对实验的解决,也别的⼀些

如如何何识识别别不不安安全全的的反反序序列列化化

测试不安全的反序列化之前,您肯定要能够识别出序列化对象,下⾯简略介绍两种语⾔的序列化格式

以便您能够在遇到它们的时候识别出它们

PHP序序列列化化格格式式

PHP的序列化对象是可读的,可以⽤⽂本表⽰的(JAVA的则是⼆进制流,您⽆法⽤⽂本阅读器查看)

其中字母代表数据类型,数字代表每项的长度

若User具以下属性的对象:

$user-name=carlos;

$user-isLoedIn=true;

序列化后,该对象可能看起来像这样:

O:4:User:2:{s:4:name:s:6:carlos;s:10:isLoedIn:b:1;}

解释:

O:4:User-具4个字符的类名称的对象User

2-对象具2个属性

s:4:name-第⼀个属性的键是4个字符的字符串name

s:6:carlos-第⼀个属性的值是6个字符的字符串carlos

s:10:isLoedIn-第⼆个属性的键是10个字符的字符串isLoedIn

b:1-第⼆个属性的值是布尔值true

PHP序列化的⽅法是serialize()和unserialize()

Java序序列列化化格格式式

JAVA(还⼀些别的语⾔Ruby等)使⽤⼆进制序列化格式

这使⼈难以阅读,但是序列化数据⼀些固定的特征

例如,序列化的Java对象始终以相同的字节开头,它们是aced

​Base64下显⽰为显⽰rO0。

rO0ABXNyACJkYXRhLnNlc3Npb24udG9rZW4uQWNjZXNzVG9rZW5Vc2Vyc1%2bhUBRJ0u8CAAJMAAthY2Nlc3NUb2tlbnQAEkxqYXZhL2xhbmcvU3RyaW5nO0wACHVzZXJuYW1lcQB%2bAAF4cHQAIEhyUGQ1WVRiYThnb3VMbkZKNE5RSlVNUGFIM0h5

任何实现该接⼝的类java.io.Serializable都可以序列化和反序列化

readObject()⽅法⽤于从中读取和反序列化数据InputStream。

操操作作序序列列化化对对象象

不安全的反序列化就包括了⽤户可以对序列化对象进⾏修改

这可能导致⼀些越权,代码执⾏等漏洞

修改幅度⼤⼩,的是仅仅修改序列化中的部分字符

的则是重新⽣成⼀个序列化对象,传给⽹站进⾏反序列化

在处理序列化对象时可以采⽤两种⽅法:

可以直接以对象的字节流形式对其进⾏编辑,

也可以使⽤相应的语⾔编写简短的脚本来⾃⼰创建和序列化新对象。

使⽤⼆进制序列化格式时,后⼀种⽅法通常更容易

修修改改对对象象属属性性

介介绍绍

属于修改幅度较⼩的清空,仅仅修改属性不会使反序列化报错

也保留了原对象的结构

举⼀个简单的例⼦,考虑⼀个使⽤序列化User对象的⽹站,该⽹站将关⽤户会话的数据存储在cookie中。

如果攻击者在HTTP请求中发现了序列化对象,则他们可能会对其进⾏解码以找到以下内容:

O:4:User:2:{s:8:username:s:6:carlos;s:7:isAdmin:b:0;}

注意到这⾥的isAdmin属性,

攻击者可以简单地将该属性的布尔值更改为1(true),重新编码对象,然后使⽤此修改后的值覆盖其当前cookie

加⼊⽹站⽤如下代码检查当前⽤户是否权访问某些管理功能:

$user=unserialize($_COOKIE);

if($user-isAdmin===true){

//allowaccesstoadmininterface

}

就可以越权访问某些页⾯

实实验验

⼀个购物⽹站页⾯

利⽤给我们的wiener:peter可以登录

登录后查看Cookie,base64解码后为

O:4:User:2:{s:8:username;s

文档评论(0)

朝兵 + 关注
实名认证
内容提供者

原版文件原创

1亿VIP精品文档

相关文档