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