攻防世界web---unserialize3

1.打开环境

攻防世界web---unserialize3_第1张图片

2.查看代码,看到“?code=”就试了一下“?code=code”然并卵

 攻防世界web---unserialize3_第2张图片攻防世界web---unserialize3_第3张图片

 3.不懂就问度娘查看攻略,知道了

wake_up函数的作用:经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作。

序列化:将对象转换成字符串。字符串包括 属性名 属性值 属性类型和该对象对应的类名。

反序列化:在适当的时候把这个字符串再转化成原来的对象。

4.打开菜鸟工具进行编码得到结果

注:(code的参数输入之后必然应该经历一次反序列化的过程,,不然,wake_up函数的作用就完全丧失了)

攻防世界web---unserialize3_第4张图片

攻防世界web---unserialize3_第5张图片

5.在网页输入得到的结果(?code=O:4:"xctf":1:{s:4:"flag";s:3:"111";})是得不到结果的,要对_wakeup函数进行绕过(原理:当序列化字符串表示的对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行。),把xctf后面的“1”,改成“2”就可以得到flag攻防世界web---unserialize3_第6张图片

攻防世界web---unserialize3_第7张图片

 

 

 

 

你可能感兴趣的:(攻防世界,前端,java,服务器)