分析
1、脑洞:提示是hint,结果get传入hint得到源码
2、看源码知,当cookie传入的ISecer值反序列得到的结果等于变量key时,得到flag
3、坑:不仔细看以为key被赋值了,但其实key还没有被定义,因此它的值应该为空
4、解:
运行得到
由于分号;被认为是分隔符不会被作为cookie的值,因此用url编码绕过
即,最终构造下图cookie
备注
1、脑洞要大
2、序列化和反序列化
- unserialize() 将已序列化的字符串还原回 PHP 的值。
- serialize() 函数用于序列化
- eg:
<?php
$arr = array('a','b','c','unserialize','怎么用');
echo serialize($arr),'<br/>';
// 还原序列化的数据
print_r(unserialize(serialize($arr)));
?>
输出:
a:5:{i:0;s:1:"a";i:1;s:1:"b";i:2;s:1:"c";i:3;s:9:"unserialize";i:4;s:9:"怎么用";}
Array ( [0] => a [1] => b [2] => c [3] => serialize [4] => 怎么用 )