GadgetInspector源码分析

GadgetInspector源码分析

💡 原文中文,约16200字,阅读约需39分钟。
📝

内容提要

本文介绍了使用自动化链子挖掘工具GadgetInspector的方法和原理,通过静态分析字节码挖掘可能存在的链子。GadgetInspector的核心代码是PassthroughDiscovery,可用于扫描jar和war文件并将结果保存至文件中。GadgetChainDiscovery类用于验证链子。需要了解asm和字节码文件的结构。

🎯

关键要点

  • GadgetInspector是一个自动化链子挖掘工具,通过asm方法对字节码进行静态分析。
  • GadgetInspector的核心代码是PassthroughDiscovery,用于扫描jar和war文件并保存结果。
  • GadgetChainDiscovery类用于验证链子,需了解asm和字节码文件结构。
  • 在学习GadgetInspector之前,读者需具备asm和字节码的基础知识。
  • 局部变量表和操作数栈的理解是GadgetInspector项目中最难的部分。
  • GadgetInspector的入口类包含参数解析、字节码分析和数据保存功能。
  • MethodDiscovery类扫描jar和war中的所有.class文件信息并保存。
  • PassthroughDiscovery类处理方法调用关系,使用逆拓扑排序来分析参数和返回值的关系。
  • CallGraphDiscovery类分析调用者和被调用者的参数关系及返回值。
  • SourceDiscovery类提供常见反序列化漏洞特征的检测。
  • GadgetChainDiscovery类验证获取的链子并保存可用链子到文件中。
  • 建议读者在学习GadgetInspector之前,系统学习asm和字节码文件结构。
➡️

继续阅读