Java反序列化漏洞Gadget Chain可视化图谱工具
Gadget_Chain是一个交互式的Java反序列化漏洞Gadget Chain可视化工具,帮助安全研究人员直观理解从Source(入口)到Gadget(跳板)再到Sink(执行点)的完整调用链。
- 交互式图谱展示:使用Vue Flow实现节点拖拽、缩放、点击查看详情
- 双链对比模式:对比两条Gadget Chain的差异,Y型布局展示共用节点和独有节点
- 代码高亮对比:使用Shiki实现Java代码语法高亮,支持差异行高亮
- 步进播放:自动播放展示调用链执行过程
- MiniMap导航:左下角缩略图快速定位
说明: 本工具支持的Gadget Chain列表参考自 ysoserial 项目收集的Payload清单。以下列表中的Gadget Chain名称与ysoserial项目中的Payload名称一一对应,方便安全研究人员对照使用。
- CommonsCollections1
- CommonsCollections2
- CommonsCollections3
- CommonsCollections4
- CommonsCollections5
- CommonsCollections6
- CommonsCollections7
- Spring1
- Spring2
- Hibernate1
- Hibernate2
- JBossInterceptors1
- JavassistWeld1
- MozillaRhino1
- MozillaRhino2
- MyFaces1
- MyFaces2
- URLDNS
- AspectJWeaver
- BeanShell1
- C3P0
- Click1
- Clojure
- CommonsBeanutils1
- FileUpload1
- Groovy1
- JSON1
- JRMPClient
- JRMPListener
- Jython1
- Rome
- Vaadin1
- Wicket1
- Jdk7u21
总计: 34+ 个Gadget Chain
- 前端框架: Vue 3 + TypeScript
- 构建工具: Vite
- 图谱引擎: Vue Flow 1.x
- 代码高亮: Shiki
- 样式: Tailwind CSS
- 布局: Dagre.js
npm installnpm run devnpm run buildnpm run preview- 从顶部下拉框选择Payload
- 点击节点查看代码详情
- 使用步进播放器自动播放调用链
- 点击右上角"对比模式"按钮
- 选择Chain A和Chain B
- 查看Y型布局展示的共用节点和独有节点
- 点击节点进行代码对比
gadget-chain-visualizer/
├── src/
│ ├── components/ # Vue组件
│ │ ├── GadgetGraph.vue # 图谱主组件
│ │ ├── CompareView.vue # 对比模式组件
│ │ ├── GadgetNode.vue # 节点组件
│ │ ├── CodePanel.vue # 代码面板
│ │ └── PayloadSelector.vue # Payload选择器
│ ├── data/ # Gadget数据
│ │ ├── gadgets/ # 各Chain定义
│ │ └── types.ts # 类型定义
│ ├── App.vue # 根组件
│ └── main.ts # 入口
├── docs/ # 文档
├── README.md
├── LICENSE
└── .gitignore
欢迎提交Issue和Pull Request!
本工具支持的Gadget Chain名称列表参考自 ysoserial 项目收集的Payload清单。感谢frohoff和所有ysoserial贡献者为Java反序列化安全研究做出的贡献。
注意: 本工具仅供安全研究和教育目的使用,请勿用于非法用途。