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

发布时间:2024年01月17日

一、__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

文章来源:https://blog.csdn.net/weixin_43263566/article/details/135637091
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。