网站漏洞检测要找到访问路径中的断点,核心方法是把一次完整访问拆成“入口—路由—参数—权限—数据—响应”几个环节,逐段制造可对比的输入,观察哪一段开始出现异常。断点通常表现为:请求已到达服务器但路由未匹配、参数被过滤后逻辑改变、权限校验前后结果不一致、数据库查询超时或报错、响应被中间层改写。找到断点的标志是能稳定复现“前一段正常、后一段异常”的分界。
不要一上来就扫全站。选一条有代表性的访问路径,例如假设存在一个商品详情页,访问形式为 /item?id=1001。先记录正常状态下的完整链路:请求方法、路径、查询参数、Cookie、响应状态码、响应体关键字段、响应时间。把这条记录当作基线,后续所有对比都围绕它进行。
常见错误是只记录 URL,不记录请求头和响应体。很多断点来自权限 Cookie 缺失、Content-Type 不符或重定向,而不是路径本身。基线越完整,后面定位越快。
把访问路径按环节拆开,每次只改变一个变量,观察结果从哪一步开始偏离基线。可以按下面顺序执行:
/item 改成 /item/ 或大小写变体,看是否出现 404、301 或 200。若路径变体直接 404,断点在路由匹配。id=1001 改成不存在的值、边界值、带特殊字符的值。若正常值返回 200、异常值返回 500,断点在参数校验或数据查询。每一步都要与基线对比,而不是只看当前请求是否成功。判断结果是:第一个让响应偏离基线的变量所在环节,就是断点候选位置。
同一个现象可能有多个解释。例如访问 /item?id=1001 返回 500,可能原因包括:参数类型转换失败、数据库连接池耗尽、后端代码空指针、反向代理超时。此时不能直接断言是 SQL 注入或某个漏洞。已经定位的原因必须满足:改变该环节输入后现象消失或改变,恢复后现象重现。
可执行的验证方式是做最小对照:
只有证据链指向同一环节,才能把“可能原因”升级为“已经定位的原因”。
在资源有限的情况下,不要按漏洞名称排序,而按“断点是否可稳定复现、是否影响未授权访问、是否触及数据读写”排序。优先处理满足以下条件的路径:
对于只能复现一次、依赖特定时间或特定账号的路径,先记录证据,不要立即投入大量人力。判断结果是:能稳定复现且影响未授权数据访问的断点,应排在最前。
假设某后台路径为 /admin/export?type=csv,普通账号访问返回 403,管理员访问返回 200。现在用普通账号把 type 改成 csv%00,若返回 500 且响应体包含数据库错误,说明断点可能在参数解码后的类型判断或查询拼接,而不是权限校验本身。下一步应固定其他变量,只改变编码方式,确认是解码环节还是查询环节。若改回普通值又恢复 403,则权限校验仍在生效,断点位于权限校验之后的处理链。
这个例子的关键不是记住某个 payload,而是学会用“前一段正常、后一段异常”的分界来缩小范围。
下一步:选一条你当前最关心的访问路径,按“路径—参数—身份—请求头”四项分别做一次对照请求,记录每次与基线的差异,把第一个出现差异的环节标为断点候选,再决定是否深入验证。