Automated Discovery of Deserialization Gadget Chains

image.png

  • 简单介绍什么是反序列化漏洞。

image.png

  • 代码审计用的魔法函数:略

image.png

  • 人工尝试追踪的方法论。

image.png

  • 攻击Payload案例

image.png

  • 哪些包有反序列化漏洞 - 文档里没说的是Fastjson。

image.png

  • 如何找到一个反序列化漏洞:其实就是看Source -> Sink

image.png

  • 找到Exploits的方法
    • 使用ysoserial - 现成的Gadget
    • 使用marshalsec - 一样现成的Gadget

image.png

  • 其他小工具:joogle、ysoserial、marshalsec…

image.png

  • 引入思考:我们是否可以搞一个工具,自动化识别新的受攻击链路呢?

image.png

  • 这样的工具,需满足的特征。

image.png

  • 实现的一个叫Gadget Inspector的开源工具。

image.png

  • 第一步:枚举类与函数拓扑。

image.png

  • 第二步:污染追踪数据流

image.png

  • 第三步:调用链路图(invoke)

image.png

  • 第四步:枚举用户可控的sources

image.png

  • 第五步:广度优先识别

image.png

  • 为一些特征库定制。

image.png

  • 尝试对制品库进行分析,分析了100个。

image.png

  • 找到一些已知问题(已经爆出来的)

image.png

  • 找到的新问题-1

image.png

  • 找到的新问题-2

image.png

  • 找到的新问题-3

image.png

  • 找到的新问题-4

后面,略,全是找到的问题。说白了,都是污染传播流入到Sink。