12. unserialize3&view_source
核心思想:不让wakeup这个函数执行 只有反序列化异常的情况下(也就是属性值个数大于属性个数的时候即异常)
有一个PHP的类:xctf
有一个flag的对象
wakeup的方法 如果触发了这个方法 就离开了 也就得不到flag的值
?code:将类以参数的形式传给xctf
目标:1.反序列化xctf
步骤:1.先序列化flag对象的值
<?php class xctf { public $flag = '111'; } $a = new xctf(); echo serialize($a); ?>O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;}
将1改成2即可绕过wakeup功能
提交url即可
注意:1.如果flag这个对象如果不是公有的对象是私有的话
且如果编译出来的序列化内容 类与对象连在一起 需要在xctf与flag间加%00
也就是改为 %00xctf%00flag
注意这个%00不是空格而是url编码
- 题目介绍鼠标右键不管用了
- 按F12试试
- 查看页面源代码发现存在flag
- cyberpeace{911f212270286f4c4aa587e1216