API模糊测试:发现漏洞的有效方法
1. 分析有趣的响应
当你注意到一个有趣的响应时,选择该结果并点击“Response”选项卡,以剖析API提供者的响应方式。例如,使用有效负载 {}[]|\:";'<>?,./
对任何字段进行模糊测试,可能会导致HTTP 400响应代码和 SyntaxError: Unexpected token in JSON at position 32
错误。
一旦遇到这样有趣的错误,你可以改进有效负载,以缩小导致错误的具体原因。如果你找出了导致问题的具体符号或符号组合,可以尝试将其他有效负载与之配对,看看是否能得到更多有趣的响应。例如,如果响应表明存在数据库错误,你可以使用针对这些数据库的有效负载;如果错误表明与操作系统或特定编程语言有关,则使用针对它的有效负载。在这种情况下,错误与意外的JSON令牌有关,因此观察此端点如何处理JSON模糊测试有效负载以及添加额外有效负载时会发生什么是很有趣的。
2. 使用Wfuzz进行深度模糊测试
如果你使用的是Burp Suite CE,Intruder会限制你发送请求的速率,因此在发送大量有效负载时,你应该使用Wfuzz。一开始,使用Wfuzz发送大型POST或PUT请求可能会让人望而生畏,因为你需要在命令行中正确添加大量信息。不过,掌握一些技巧后,你应该能够在Burp Suite CE和Wfuzz之间轻松切换。
Wfuzz的一个优点是它比Burp Suite快得多,因此我们可以增加有效负载的大小。以下示例使用了一个名为 big-list-of-naughty-strings.txt