美文网首页
反序列化中__wakeup()函数漏洞

反序列化中__wakeup()函数漏洞

作者: gelinlang | 来源:发表于2019-04-02 10:47 被阅读0次

__wakeup()是用在反序列化操作中。unserialize()会检查存在一个__wakeup()方法。如果存在,则先会调用__wakeup()方法。
在XCTF攻防世界的一道题unserialize3,源码如下。

class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}//这里差个反括号,但是源码确实是这样的。
?code=

将上面的要求序列化后为O:4:"xctf":1:{s:4:"flag";s:3:"111";},xctf后有一个数字1,这个1是代表这个类有一个属性。__wakeup()漏洞就是与整个属性个数值有关。当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行。
如,我们提交O:4:"xctf":2:{s:4:"flag";s:3:"111";},将其改为2,得到flag。

给一个在线序列化的网址。
https://www.w3cschool.cn/tryrun/showphp/demo_func_string_serialize

相关文章

  • 反序列化中__wakeup()函数漏洞

    __wakeup()是用在反序列化操作中。unserialize()会检查存在一个__wakeup()方法。如果存...

  • xctf-unserialize3

    给了我一段代码,php,_wakeup(),反序列化过程中,会调用这个wakeup。 先上代码: 所以要有反序列化...

  • PHP反序列化漏洞原理与复现

    php反序列化漏洞,又叫php对象注入漏洞 序列化与反序列化 php中有两个函数serialize()[http:...

  • 攻防世界-Web-unserialize3

    题目信息: 打开题目环境,得到php代码 审计代码,就是让我们运用__wakeup()函数的漏洞拿flag的。这里...

  • PHP反序列化总结

    问题原因:漏洞的根源在于unserialize()函数的参数可控。如果反序列化对象中存在魔术方法,而且魔术方法中的...

  • java反序列化漏洞之初了解

    最近这两年反序列化漏洞特别的”火“,反序列化漏洞的主要成因是在JAVA中,ObjectOutputStream中的...

  • JBOSS漏洞

    Java反序列化RCE漏洞 CVE-2015-7501漏洞 由于JBoss中invoker/JMXInvokerS...

  • JAVA反序列化漏洞

    目录 反序列化漏洞序列化和反序列化JAVA WEB中的序列化和反序列化对象序列化和反序列范例JAVA中执行系统命令...

  • 腾讯大牛带你学:Java安全weblogic T3协议漏洞

    前言 在反序列化漏洞里面最经典的还是莫过于weblogic的反序列化漏洞,在weblogic里面其实反序列化漏洞利...

  • shiro 反序列化漏洞解决方案总结

    Apache Shiro Java 反序列化漏洞分析Apache Shiro 1.2.4反序列化漏洞分析Shiro...

网友评论

      本文标题:反序列化中__wakeup()函数漏洞

      本文链接:https://www.haomeiwen.com/subject/pzswbqtx.html