反序列化复现CVE-2016-7124
这里以一道CTF题目为例子
可以看见在sercet类中所存在的三个方法都是魔法函数,具体含义已在注释中写明
可以看出来我们需要传入一个变量为val,然后通过destructd函数输出得到我们flag.php,但是由于存在wakeup函数,导致我们反序列化后的$file始终为index.php,所以我们就需要绕过wakeup函数,使他不执行。
我们先看一看正常情况下,这段代码输出的序列化对象。
O:6:"sercet":1:{s:12:"sercetfile";s:8:"flag.php";},然后我们使用这段序列化代码传值给val
注意由于我们的file变量是private