进去后是个登录页面,但是login根本不会跳转,看源码也没提示,但是这道题给了一个提示:hint,那么盲猜应该是一个get参数,因为post不能跳转,那么get总有内容吧,跟上hint参数,随便赋一个值。
发现报出了源码
审计一波发现只要cookie的值等于$key变量的序列化字符就能输出flag。
那么发现之前没有给$key定义赋值,但是最下面出现了,我们先在本机上查看这种情况下的$key变量的序列化值
发现这种情况下的序列化值是这样的,那么我们直接不定义$key变量,也不赋值,看看
同样也是这个:s:0:""; 上面定义了cookie的参数为ISecer,那么直接cookie的值应该为:ISecer:s:0:"";
在火狐的hackbar里面传上这个cookie值就行了,但是最后“;”在cookie中是不会上传到服务器的,因此这里“;”要用url编码一下,即:ISecer:s:0:""%3b
最后输出flag。
这道题主要考的是反序列化unserialize()函数,就是将序列化的字符转换为正常字符串,他对应的序列化函数是serialize(),将字符串序列化。
BugkuCTF flag.php(反序列化)
标签: