
反序列化
文章平均质量分 94
Hello-smile
真正的大师,永远怀着一颗学徒的心,我将一生追随于安全领域。梦想成为全栈
展开
-
反序列化漏洞详解(三)
wakeup绕过(不怎么重要,但需要知道)反序列化漏洞:CVE-2016-7124 就是这个原因漏洞产生原因:如果存在__wakeup方法,调用unserilize()方法前泽贤调用wakeup方法,但是序列化字符串中表示对象属性个数的值大于真实的属性个数时,会跳过__wakeup()的执行直接实战这里其实我有两个问题第一个问题 __wakeup不是在反序列化之前执行的嘛 他赋值不应该是没用嘛 他执行结束后对象获取的不是序列化字符串的值嘛?难道__wakeup会一直检查?解决:总结起来,原创 2023-12-03 17:33:17 · 336 阅读 · 0 评论 -
反序列化漏洞详解(二)
pop构造链解释(开始烧脑了)延续反序列化漏洞(一)的内容pop链前置知识,魔术方法触发规则魔术方法触发前提:魔术方法所在类(或对象)被调用类的反序列化的时候 只会触发当前类中的魔术方法 和其他类无关很好理解 C类被反序列化后得到对象A 其值从序列化的字符串中得到 但是对象A如果触发魔术方法只能触发C类中的魔术方法 ,在这里也说一下,如果字符串中有某一类,反序列化后 系统会认为该对象属于这个类目标:触发__tostring魔术方法。原创 2023-12-02 23:52:24 · 394 阅读 · 0 评论 -
反序列化漏洞详解(一)
反序列化过程: 构造完的poc 反序列化给一个对象A 告诉这个对象你是index类的你里面有个test的属性 并且这个属性属于evil类的 evil(test对象)里的值test2为system(dir) 因为是反序列化在反序列化结束的时候会自动执行index类(对象A)中的__destruct()魔术方法 从而执行action。在类中直接声明的变量成为成员属性(也可以成为成员变量),可以在类中声明多个变量,即对象中可以有多个成员属性,每个变量都存储对象不同的属性信息。通过调用的方法,触发代码执行。原创 2023-12-01 23:54:18 · 694 阅读 · 0 评论