Scalpel简介
Scalpel是一款自动化Web/API漏洞Fuzz引擎,该工具采用被动扫描的方式,通过流量中解析Web/API参数结构,对参数编码进行自动识别与解码,并基于树结构灵活控制注入位点,让漏洞Fuzz向量能够应对复杂的编码与数据结构,实现深度漏洞挖掘。
- 详细技术原理可参考KCon 2022议题:《自动化API漏洞Fuzz实战》
- 目前我们的Fuzz引擎端已打包为一个小工具,内置100+漏洞POC,供大家试用:
https://github.com/StarCrossPortal/scalpel
深度参数注入原理
随着Web应用复杂度的提升与API接口的广泛使用,在HTTP应用漏洞Fuzz过程中, 传统的「Form表单明文传参的模式」已经逐渐变为「复杂、嵌套编码的参数传递」 。在此情况下,直接对参数内容进行注入或替换,无法深入底层的漏洞触发点。
漏洞Fuzz过程中需要对这些「结构体、编码」进行抽离,找到真正的注入点位,方可进行自动化漏洞测试。
Scalpel拥有一个强大的数据解析和变异算法,它可以将常见的数据格式(json, xml, form等)解析为树结构,然后根据poc中的规则,对树进行变异,包括对叶子节点和树结构的变异。变异完成之后,将树结构还原为原始的数据格式。
Scalpel主体结