BugBank整理总结。
1、什么是Fuzz
- 一种基于黑盒的自动化软件模糊测试技术。
- 可向目标发送随机或精心构造的数据作为计算机输入,来触发非常规反馈以达到检测漏洞的目的。
- 一般的Fuzz工具自带完备的异常检测机制,发送数据后能精准查出哪些Payload导致了非常规反馈,在输出中将这些触发异常的Payload列出,大大降低了人工测试成本,渗透测试人员只需关注感兴趣的部分。
- BruteXSS
2、使用Fuzz相对于手工Xss的优势
- 检测范围、规模大:自动化工具在测试用例的效率和完善上是人工无法比较的,且很多潜在的有效Payload套路固定,这些Payload就无需手工测试,只需有一份精心构造的文件和规则即可完成Fuzz。
- 覆盖可能性多,可检测出意想不到的异常:Fuzz技术通过随机函数产生大量随机的Payload,可检测出由于后端代码独特性而产生的异常,这类异常是常规测试难以挖掘到的。其检测方式满足大数定律,重复次数够多,随机性够强,那么异常总会出现。
3、XssFuzz工具检测流程与实现细节
- 对目标发起请求
- 分析返回结果,对输入向量(form和js中的Post、Get、Cookie和在Header中的参数等)检测
- waf检测,包括使用敏感字符,短时间内多次访问
- 检测输入向量中所有潜在的注入点
- 然后判断是否存在注入点