题目链接
https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=1&id=4821&page=1
启动环境
分析代码
代码定义了一个类,其中有一个方法 wakeup() , _wakeup()会直接退出,并输出" bad requests " 末尾有" ?code= " 看样子是要构造url来绕过wakeup()这个函数了。
当对一个对象序列化时,php就会调用sleep方法(如果存在的话),在反序列化时,php就会调用wakeup方法(如果存在的话)。
我们将序列化后的对象字符串为O:4:"xctf":1:{s:4:"flag";s:3:"111";}
直接将它赋给code试试
显示了bad requests
传入的code会被unserialize()反序列化,这样的化,我们的目的就是避免执行_weakup()函数
我们修改长度,反序列化时便会报错
O:4:"xctf":2:{s:4:"flag";s:3:"111";}
构造url为:
?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}