被禁用的工具——观察法:为什么它被视为"禁忌"
大多数漏洞猎人追逐扫描器和载荷列表。我不这样做。我猎取的是假设。真正免费且完全被忽视的工具很简单:观察。
为什么它被视为"禁忌"
人们把测试当作检查清单:运行工具,导出报告,继续前进。观察打破了这种节奏。它提出缓慢的问题:为什么这个按钮存在,谁会点击它,如果我不按照UI预期操作会发生什么?这些微小的人类不匹配就是业务逻辑漏洞,扫描器永远无法建模。
单行规则
如果UI和代码不一致,开始探查——不要开始扫描。
一个问题
我在测试一个仪表板时,删除按钮对非管理员用户隐藏在JavaScript切换后面。我问:“如果我直接调用删除端点会怎样?“请求成功了。没有服务器端检查。没有花哨的漏洞利用——只是一个人为的不匹配和一个简单的curl命令。P1级别漏洞。
观察什么(检查清单)
- UI中奇怪的标签、拼写错误或版本号
- HTML注释或剪贴板处理程序中的隐藏链接
- 类似请求之间的轻微时间差异
- 暗示已移除功能的未链接资源(旧的JS/CSS)
- 登录与未登录资源的不同响应
- 类似流程的状态码不一致
- 过于详细的错误页面或堆栈跟踪
- Robots.txt/sitemap条目指向被遗忘的端点
微例行程序——90秒开始
- 打开应用,像困惑的用户一样浏览90秒
- 记录5个异常点(文案、按钮、重定向、资源)
- 在Burp/DevTools中重放这些流程并比较请求
- 仅对异常端点进行模糊测试。更高产出,更少噪音
专业技巧
当用户期望出现按钮但没有出现时——这种期望就是一个等待被表述为"如果……会怎样?“的漏洞。
观察无需成本。它比扫描器更安静,比暴力破解更精确。训练它。提出小问题。发现大漏洞。
— Viratavi