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

相关推荐

  1. PHP序列漏洞-魔术方法

    2024-01-18 12:54:07       62 阅读
  2. php序列及其常见魔术方法及其触发条件

    2024-01-18 12:54:07       39 阅读
  3. [web]-序列-__wakeup(转)

    2024-01-18 12:54:07       22 阅读
  4. PHP序列漏洞-字符串逃逸

    2024-01-18 12:54:07       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 12:54:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 12:54:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 12:54:07       82 阅读
  4. Python语言-面向对象

    2024-01-18 12:54:07       91 阅读

热门阅读

  1. android List,Set,Map区别和介绍

    2024-01-18 12:54:07       57 阅读
  2. C Primer Plus(第六版)11.13 编程练习 第12题

    2024-01-18 12:54:07       61 阅读
  3. 计算机网络、浏览器面试题

    2024-01-18 12:54:07       44 阅读
  4. 如何解决redis热点key问题

    2024-01-18 12:54:07       52 阅读
  5. Go自研微服务框架-日志处理

    2024-01-18 12:54:07       43 阅读
  6. Android设置夜间模式的主题样式

    2024-01-18 12:54:07       49 阅读