大多数人对待工具就像宗教信仰:神圣的工具清单、神圣的负载、仪式化的运行。工具易于复制、易于赞美,而且极其容易截图。这就是问题所在——痴迷取代了思考。工具可以自动化任务,但它们不会教你为什么这个任务最初很重要。
为什么这是个问题
工具外化了思考。当你依赖扫描器或AI提示来告诉你哪里出错时,你学到的是工具的偏见——而不是系统的弱点。随着时间的推移,你会忘记发现高价值漏洞的简单思维习惯:好奇心、对用户的同理心,以及指向逻辑漏洞的用户体验中的微小荒谬之处。
(对新手的说明:端点就是一个执行操作的网络地址——而这通常是逻辑漏洞隐藏的地方。)
单行规则
如果你能用复选框取代一个想法,你就停止了学习。
一个问题
在启动工具或提示之前,问自己: “如果这个系统是安全的,我期望看到什么?”
如果你的回答很肤浅——“没有发现”或“低严重性”——那就深入挖掘。这个问题训练大脑;工具只验证结果。
需要注意的事项(心理检查清单)
- 人们出于习惯而非设计执行的任务(变通方法、复制粘贴流程)
- 假设用户永远不会偏离的UI快捷方式
- 与实现相矛盾的文档
- 泄露内部状态或揭示假设的错误消息
- 没有人使用但仍接受输入的功能
- 任何期望“行为良好”用户的东西
微习惯——90秒思考,而非扫描
打开应用程序,不要启动你的工具。像打破习惯的人一样浏览。
- 选择一个你不理解的流程——为什么那个字段是可选的?为什么有那个重定向?——写下你的预期。(30秒)
- 手动执行一次流程,故意做意外的事情(缺失字段、奇怪的cookie、不同角色)。记录3个意外发现。(30秒)
- 现在运行工具只是为了确认你的观察,而不是引导它们。(30秒)
AI如何融入——反思,而非替代
AI是你当前知识的镜子。它放大你已经思考的内容。如果你提出肤浅的提示,期望得到肤浅的帮助。
示例: 肤浅:“检查此页面是否存在XSS。” 深入:“考虑到此应用的架构和基于角色的访问,认证用户触发XSS的三种非标准方式是什么?”
使用AI来挑战你的假设,而不是确认它们。让模型与你争论。
关于工具的说明
自动化并非邪恶——它是杠杆。扫描器在侦察、映射或捕捉低悬果实方面非常出色。危险在于它们成为观察的替代品。工具应该服务于好奇心,而不是取代它。
专业技巧
教你的工具出错。故意给它们提供错误的输入或有缺陷的假设,观察失败模式——这些比顺利运行更能揭示假设。
观察 + 挑战 + 反思 = 复合学习。工具是加速剂;思想是燃料。
观察无需成本。它比扫描器更安静——当与好奇的头脑搭配时,却致命得多。
— @viratavi