1. 准备工作:确保你已经安装并配置好了 Burp Suite。
  2. 核心概念:理解 Burp Suite 扫描的基本流程。
  3. 详细扫描步骤:从零开始进行一次完整的网站扫描。
  4. 高级扫描选项:如何调整扫描器设置以获得更好的效果。
  5. 扫描结果分析:如何理解和处理扫描报告。
  6. 重要注意事项:关于合法性和扫描技巧的提醒。

准备工作

在开始之前,请确保你已经完成了以下步骤:

burpsuite扫描网站
(图片来源网络,侵删)
  • 安装 Burp Suite:下载并安装 Burp Suite Professional(付费版,功能最全)或 Community 版(功能有限,适合学习基本概念)。
  • 配置浏览器代理:这是最关键的一步,你需要将你的浏览器(如 Chrome、Firefox)的网络流量通过 Burp Suite 进行代理。
    • 在 Burp Suite 中设置监听
      1. 打开 Burp Suite,进入 Proxy -> Options 标签页。
      2. Proxy listeners 部分,确保监听端口是 8080(或你自定义的端口)。
      3. 点击 Edit,确保 Bind to address 设置为 all interfaces,这样本地回环地址和其他地址都能访问。
      4. 勾选 Act as a transparent proxy for non-HTTP traffic
      5. 点击 OK,然后点击 Start 按钮启动代理。
    • 在浏览器中配置代理
      • Chrome: 使用 SwitchyOmega 等代理插件,配置 HTTP 代理为 0.0.1,端口为 8080
      • Firefox: 进入 设置 -> 网络设置 -> 设置...,选择“手动配置代理”,HTTP 代理填入 0.0.1,端口为 8080
  • 安装 SSL 证书(可选,但推荐):为了能解密和分析 HTTPS 流量,你需要在浏览器中安装 Burp Suite 的 CA 证书。
    1. 在 Burp Suite 的 Proxy -> HTTP history 中,找到一个 HTTPS 请求。
    2. 右键点击该请求,选择 Proxy -> Certificate options -> Install Certificate in Browsers
    3. 按照提示操作,将证书安装到你的浏览器根证书存储区。

核心概念

理解 Burp Suite 的工作流程能让你更好地控制扫描:

  1. 抓取站点地图:扫描的第一步是让 Burp Suite 了解整个网站的结构,你需要通过浏览器正常浏览网站的所有页面、点击所有链接、提交所有表单,Burp Suite 的 Proxy 会记录下所有这些请求,Target -> Site map 会根据这些请求生成一个网站的“地图”。
  2. 主动扫描:扫描器会根据站点地图,主动发送一些精心构造的请求来探测漏洞,它会尝试在搜索框中输入 SQL 注入载荷,或者在 URL 参数中尝试跨站脚本载荷。
  3. 被动扫描:在抓取站点地图的过程中,扫描器会被动地分析已经记录的请求和响应,寻找明显的漏洞迹象,这不会主动发送新的请求,因此对服务器影响较小。

详细扫描步骤

这里我们以最常见的场景为例:扫描一个登录后的需要认证的网站。

抓取和映射站点

  1. 确保你的浏览器代理已经指向 Burp Suite。
  2. 在浏览器中正常访问目标网站,从首页开始,浏览所有公开的页面,点击所有可见的链接、按钮和表单。
  3. 如果网站需要登录,请先完成登录。
  4. 登录后,继续浏览所有需要登录后才能访问的功能模块(例如个人中心、设置、发帖等)。
  5. 切换到 Burp Suite,打开 Target -> Site map,你应该能看到一个树状结构,里面包含了你刚刚浏览过的所有 URL,树状结构会自动根据 URL 的相似性进行分组,这是扫描器工作的基础。

配置扫描范围

为了避免扫描到不相关的网站,必须设置扫描范围。

  1. Site map 中,右键点击你要扫描的整个域名(www.example.com)。
  2. 选择 Add to scope
  3. 你也可以在 Scanner -> Scan queue -> Scope 标签页中管理你的扫描范围。只勾选你希望扫描的目标

启动扫描

  1. Site map 中,右键点击你想要扫描的 URL 组(例如整个 www.example.com 节点)。
  2. 选择 Engage scanner
  3. 此时会弹出一个扫描配置窗口:
    • Scan type:
      • Active scanning: 主动扫描,功能最全,能发现更多漏洞,但可能对服务器造成较大负载,且可能触发 WAF/IPS 的告警。这是最常用的模式。
      • Passive scanning: 被动扫描,只分析已有流量,非常安全,但发现的漏洞类型较少。
    • Include advanced scan options: 勾选此项可以展开高级选项,我们将在下一节详细介绍,对于初学者,可以先保持默认。
  4. 点击 Start scan

监控扫描进度

扫描开始后,你会看到以下变化:

burpsuite扫描网站
(图片来源网络,侵删)
  • Scanner 标签页:这里是扫描的核心区域,你可以看到:
    • Scan queue: 显示正在等待和正在进行的扫描任务。
    • Issues: 这里是最终发现的所有漏洞列表,扫描过程中,发现的问题会实时出现在这里。
    • Scan details: 显示当前扫描任务的详细信息,包括正在扫描的 URL、进度和已发现的问题。
  • Target -> Site map: 正在扫描的 URL 旁边会出现一个旋转的图标,表示扫描正在进行中。

扫描可能需要几分钟到几小时不等,具体取决于网站的大小和复杂程度。


高级扫描选项

勾选 Include advanced scan options 后,你可以对扫描进行精细控制,这对于提高扫描效率和准确性至关重要。

  1. Scanner -> Scan queue -> 右键点击正在进行的扫描 -> Scan details -> Scanner options

  2. 关键选项说明

    burpsuite扫描网站
    (图片来源网络,侵删)
    • Maximize scan coverage (推荐开启): Burp 会使用一些技术(如目录爆破、参数发现等)来扩大扫描范围,确保能找到更多的攻击面,开启它会发现更多潜在问题,但也会延长扫描时间。
    • Maximize speed vs. reliability (平衡模式): 提供速度和可靠性之间的平衡,通常推荐使用这个默认选项。
    • Retest issues: 如果你在两次扫描之间修复了某些漏洞,这个选项会让扫描器只重新测试之前标记为问题的地方,而不是全量扫描,可以节省大量时间。
    • Filter out-of-scope items: 强制扫描器只扫描在范围内的项目,防止误扫描。
    • Request-based scanning: 默认关闭,开启后,扫描器会基于你选择的单个请求进行扫描,而不是整个站点地图,这对于测试某个特定的表单或 API 端点非常有用。
    • Match and replace: 可以自定义扫描时的请求头或参数,例如添加特定的 Cookie 来维持会话。
    • Authentication Scanner: 如果网站有复杂的认证流程(如多因素认证、OAuth),可以在这里配置,让扫描器知道如何登录和保持会话状态。

扫描结果分析

扫描完成后,所有的漏洞都会出现在 Scanner -> Issues 标签页。

  1. 查看问题列表

    • 问题会按严重性分类:Critical (高危), High (高危), Medium (中危), Low (低危), Information (信息), False positive (误报)
    • 点击某个问题,你可以看到:
      • Issue details: 问题的详细描述、风险等级、技术背景和修复建议,这是最重要的部分。
      • HTTP history: 导致此问题的原始 HTTP 请求和响应,你可以在这里复现漏洞。
      • Evidence: 证明漏洞存在的证据片段(如响应中的错误信息)。
      • Request: 可以直接点击 Request in browser 在浏览器中打开这个请求,方便手动验证。
  2. 处理误报

    • 自动化扫描器有时会产生误报,如果你认为某个问题不是真正的漏洞,可以右键点击它,选择 Mark as false positive
  3. 导出报告

    • Scanner -> Issues 标签页,点击 Export 按钮。
    • 你可以导出为多种格式,如 HTML、PDF、XML 等,HTML 格式的报告最直观,方便向开发团队或管理层展示。

重要注意事项

  • 合法性是第一原则永远不要在未经书面授权的情况下扫描任何不属于你的网站。 未经授权的扫描是违法行为,扫描前务必获得目标网站所有者的许可。
  • 对服务器的影响:主动扫描会给目标服务器带来额外的负载,在高峰期或对生产服务器进行扫描时,请务必告知相关负责人,并考虑使用被动扫描或降低扫描速度。
  • WAF/IPS 干扰:很多网站都有 Web 应用防火墙,如果扫描时遇到大量 403 Forbidden 错误,可能是 WAF 拦截了你的扫描请求,此时可以尝试调整扫描速度、更换代理 IP,或者使用更高级的扫描选项来绕过简单的 WAF 规则。
  • 手动验证是关键:自动化扫描器只是辅助工具,它可能会漏掉一些复杂的逻辑漏洞,也可能产生误报。所有发现的高危和中危问题,都必须通过手动方式进行验证和确认。

希望这份详细的指南能帮助你顺利上手 Burp Suite 的网站扫描功能!