题目如上
打开题目后发现,提示robots
随后提示又需要改一改名字
修改文件名为humans.txt之后发现
有个备份文件,直接访问www.zip就可以下载了
下载打开后如下:
在其中看到了unserialize和两个魔法函数
可以联想到是反序列化漏洞
__construct()当一个对象创建时被调用
__destruct()当一个对象销毁时被调用
__toString()当一个对象被当作一个字符串使用
__sleep() 在对象在被序列化之前运行
__wakeup将在反序列化之后立即被调用
观察代码,__construct函数里有getflag();
所以我们就只需要把Daedalus类实例化就行了
而要想实例化,就得调用Mang0类中的__wakeup
思路就出来了,我们可以构造一个序列化后的Mang0,当作message参数传入进去
然后unserialize会将他反序列话,同时调用Mang0中的__wakeup函数
payload:O:5:"Mang0":1:{s:7:"message";s:14:"hello_new_geek";}
得到flag