Skip to content
Kurisu
Go back

Java 反序列化:CC6 链、Shiro 与冰蝎内存马

Java 反序列化概念比 PHP 抽象,链子靠工具生成,一开始完全是黑盒。按理解顺序:机制 → CC6 → Shiro 550 → 内存马。

Java 序列化机制速览

CC6 链到底在干什么

CC6 是 CC 链里路径最短的:

java.util.HashMap.readObject()
  → hash(key)
    → TiedMapEntry.hashCode()
      → getValue()
        → LazyMap.get()
          → ChainedTransformer.transform()
            → InvokerTransformer 反射执行任意方法

transformer 链是一条”延迟执行的管道”:每个 Transformer 把能力转交下一个,最后由 InvokerTransformer 反射执行 Runtime.exec();HashMap 提供触发入口。

链子可用 ysoserial 生成。

Shiro 550(rememberMe 反序列化)

冰蝎与内存马

文件型 WebShell 落地即有特征;内存马把代码直接注册进运行中的容器(Filter/Servlet/Listener 型),不落盘、重启即消失:

学习建议

别一上来啃 CC1(最长那条),顺序:URLDNS(入口)→ CC6(最短链)→ Shiro 550(实战)→ CC1-CC5;环境用 vulhub 的 Shiro 靶场。


Share this post:

Previous Post
PHP 反序列化深入:POP 链构造思路与绕过手法
Next Post
WAF 绕过与免杀:从规则原理到雷池实战