PHP反序列化漏洞-魔术方法绕过

一、__wakeup()魔法函数绕过:

在PHP中,__wakeup()是一个魔术方法,用于在反序列化对象时自动调用。当反序列化字符串中的对象属性个数大于实际属性个数时,可以利用这个漏洞进行绕过。

触发条件:

  • PHP版本为5.6.25或早期版本,或者PHP7版本小于7.0.10。
  • 反序列化字符串中的对象属性个数的值大于实际属性个数。

二、正则绕过:(代码可能有些问题)

可以使用正则表达式中的加号+来进行绕过,通过添加位置来改变类名的个数。下面是一个例子:

0:4:"Demo":1:{s:10:"Demo file";s:8:"flag.php";}

如果要进行绕过,可以使用加号来添加位置:

0:+4:"Demo":1:{s:10:"Demo file";s:8:"flag.php";}

if (preg_match('/[oc]:\d+:/i', $Svar)) {
    die("stop hacking!");
} else {
    unserialize($Svar);
}

三、实战

靶场地址:

BUUCTF在线评测 (buuoj.cn) 或 搜索&#x

你可能感兴趣的:(Web安全渗透,php,开发语言)