反序列化

最近学习了一下java的反序列化漏洞,对一些之前爆出来的一些开源组件的反序列化漏洞的进行了简单的分析,并总结到这篇文章中。
上篇 文章 ,我们是通过 PendingBroadcast 类 __destruct 方法中的 $this->events->dispatch ,然后直接走 $this->events 对象的 __call 方法,本文将探索直接走 $this->events 对象 dispatch 方法的 POP链 。
前段时间做了一个CTF题目,发现这道题目相当的精妙,主要是利用了%00的截断来绕过安全校验,最终利用反序列化达成目的。
本文以 code-breaking 中 lumenserial 为例,练习PHP反序列化 POP链 的寻找,题目地址:https://code-breaking.com/puzzle/7/ 。
在 jenkins 中我找到了绕过黑名单的方法,那么同样也有很多框架/程序用的是白名单,一定意义上说必须满足程序正常执行流程的一些类才能够通过白名单的限制,这篇文章主要分享白名单下反序列化的利用姿势和一些个人所想所得。
序列化 (Serialization) 是指将数据结构或对象状态转换成字节流 (例如存储成文件、内存缓冲,或经由网络传输) ,以留待后续在相同或另一台计算机环境中,能够恢复对象原来状态的过程。
这篇文章会详细介绍对ruby的任意反序列化利用,同时还发布了首个通用型gadget链,用来实现Ruby 2.x的任意命令执行。
上周出的 WebLogic 反序列漏洞,跟进分析的时候发现涉及到不少 Java 反序列化的知识,然后借这个机会把一些 Java 反序列化漏洞的利用与防御需要的知识点重新捋一遍,做了一些测试和调试后写成这份报告。文中若有错漏之处,欢迎指出。
最近在总结php序列化相关的知识,看了好多前辈师傅的文章,决定对四个理解难度递进的序列化思路进行一个复现剖析。包括最近Blackhat议题披露的phar拓展php反序列化漏洞攻击面。
最近关注到一些Node.js的漏洞,比较感兴趣的一个反序列化导致远程代码执行的漏洞,个人开发Node.js也有不短时间,决定尝试复现分析它并给出一些开发建议,遂有此文。