杰瑞科技汇

Burp Suite怎么用?新手入门教程有哪些步骤?

Burp Suite 使用教程:从入门到精通

什么是 Burp Suite?

Burp Suite 是一款用于 Web 应用安全测试的集成平台,由 PortSwigger 公司开发,它集成了多种渗透测试工具,形成一个协同工作的环境,安全专家可以使用它来执行各种任务,如:

Burp Suite怎么用?新手入门教程有哪些步骤?-图1
(图片来源网络,侵删)
  • 侦察和信息收集
  • 漏洞扫描
  • 手动渗透测试
  • 自动化攻击

Burp Suite 的核心思想是作为一个中间人代理,拦截你浏览器和目标服务器之间的所有网络流量,并允许你查看、修改和重放这些请求。


Burp Suite 的版本

Burp Suite 主要分为四个版本,了解它们的区别很重要:

  1. Community (社区版)

    • 免费,适合初学者学习基本概念。
    • 功能限制:没有 Intruder、Repeater、Decoder、Comparer 等核心工具,功能非常有限。
  2. Professional (专业版)

    Burp Suite怎么用?新手入门教程有哪些步骤?-图2
    (图片来源网络,侵删)
    • 付费,这是渗透测试人员使用最广泛的版本。
    • 功能齐全:包含了所有核心工具,是进行专业渗透测试的标准。
  3. Enterprise (企业版)

    • 付费,在专业版基础上增加了团队协作、扫描策略管理、报告生成等企业级功能。
  4. Intruder (攻击者)

    • 注意:这不是一个独立的版本,而是 Professional 版本中的一个核心工具。

本教程将以 Professional 版本为基础进行讲解。


安装与配置

  1. 下载

    • 访问 Burp Suite 官网
    • 下载并安装 Community 版或购买并安装 Professional 版。
  2. 安装 Java 环境

    • Burp Suite 是一个 Java 应用,确保你的系统已安装 Java 运行环境,你可以从 Oracle 官网 下载并安装。
  3. 启动与首次配置

    • 运行 burp-suite-ce.jar (社区版) 或 burp-suite-pro.jar (专业版)。
    • 配置浏览器代理
      • 目标:让浏览器的所有流量都通过 Burp。
      • 步骤
        1. 在 Burp Suite 的 "Proxy" -> "Options" 选项卡中,确认监听端口(默认 8080)和监听地址(默认 0.0.1)。
        2. 打开你的浏览器(推荐使用 Firefox 或 Chrome,并安装 SwitchyOmega 插件,方便管理代理)。
        3. 在浏览器或 SwitchyOmega 的代理设置中,配置 HTTP 和 HTTPS 代理为 0.0.1,端口为 8080
        4. 重要:为了能解密 HTTPS 流量,你需要在 Burp 的 "Proxy" -> "Options" -> "SSL" 选项卡中,勾选 "Decrypt HTTPS traffic",这会生成一个 CA 证书,你需要将这个证书安装到你的浏览器中,否则 HTTPS 网站会显示不安全。
    • 测试:配置完成后,在浏览器中访问 http://burp,如果能看到 Burp 的证书安装页面,说明代理配置成功。

核心功能模块详解

Burp Suite 的界面由多个标签页组成,每个标签页代表一个功能强大的工具。

Proxy (代理) - 流量拦截器

这是 Burp Suite 的核心,所有浏览器流量都会经过这里。

  • Intercept:流量拦截开关,开启时,所有请求都会被暂停,等待你的处理。
    • Forward:放行当前请求。
    • Drop:丢弃当前请求。
    • Action:对请求进行各种操作(发送到其他工具、保存等)。
  • HTTP history:记录所有经过代理的请求和响应,你可以在这里查看、搜索和分析历史记录。
  • Options:代理配置,如监听端口、SSL 解密等。

使用场景:当你手动浏览网站时,可以实时看到每一个后端 API 请求和服务器响应,这是理解应用工作方式的第一步。

Intruder (攻击者) - 自动化攻击器

用于自动化地对一个或多个位置发起攻击,是 Burp 最强大的工具之一。

  • Positions (攻击位置)

    • 你需要先在请求中标记要攻击的位置,标记方式有四种:
      • 简单标记,替换整个值。
      • 标记为空,用于在前后插入 payload。
      • §g§:标记为 grep,用于在 payload 中包含特殊字符。
      • 自定义标记:使用 §custom§
    • 使用技巧:选中要替换的部分,右键选择 "Add to positions" 或使用快捷键 Ctrl+Shift+U
  • Payloads (攻击载荷)

    • 这是攻击的核心,即你要用来替换标记位置的“字典”。
    • Burp 提供了多种 Payload Set 类型:
      • Simple list:简单的列表,一行一个 payload。
      • Runtime file:从文件中动态读取 payload。
      • Numbers:生成数字序列。
      • Brute forcer:暴力破解,组合字符。
      • Character blocks:用于模糊测试。
      • Payload Generator:生成特定格式的 payload。
      • Sniper:单位置攻击,对每个 payload,只替换一个标记位置。
      • Battering ram:对每个 payload,同时替换所有标记位置(使用同一个 payload)。
      • Pitchfork:多位置攻击,使用多个 payload 列表,按位置一一对应替换。
      • Cluster bomb:多位置攻击,使用多个 payload 列表,进行笛卡尔积式组合替换。
  • Options (攻击选项)

    • Grep - Match:定义匹配规则,当响应中包含这些内容时,认为攻击成功("用户名已存在"、"登录成功"等)。
    • Grep - Extract:定义提取规则,从响应中提取特定信息(从 Set-Cookie 头中提取 session ID)。
    • Request:配置攻击时的一些细节,如线程数、重定向等。

使用场景:暴力破解密码、SQL 注入、XSS 漏洞探测、目录遍历等。

Repeater (重放器) - 手动测试工具

用于手动修改和发送单个 HTTP 请求,并查看服务器的响应。

  • 使用流程
    1. 在 "Proxy" 或 "Target" 标签页中,找到一个你感兴趣的请求。
    2. 右键点击,选择 "Send to Repeater"。
    3. 在 "Repeater" 界面中,左侧是请求,右侧是响应。
    4. 你可以随意修改请求中的任何部分(URL、参数、Header、Body 等),然后点击 "Go" 按钮发送,并观察响应的变化。

使用场景:手动验证漏洞、测试业务逻辑、修改请求参数进行越权操作等。

Decoder (解码器) - 编解码工具

用于对数据进行各种编码和解码操作。

  • 编码/解码类型:Base64, HTML, URL, Hex, etc.
  • 使用方式:将数据输入到 "Input" 框,选择操作类型,点击 "Decode" 或 "Encode"。

使用场景:处理经过编码的参数、绕过 WAF 过滤、理解数据格式。

Comparer (比较器) - 响应比较工具

用于并排比较两个 HTTP 响应,找出其中的差异。

  • 使用方式
    1. 从 "Repeater" 或 "HTTP history" 中,将两个响应文本分别拖到 "Comparer" 的左右两个窗口。
    2. 点击 "Compare" 按钮,Burp 会高亮显示不同之处。

使用场景:在模糊测试或注入测试中,比较正常响应和异常响应,找出注入点。

Extender (扩展器) - 扩展平台

允许你加载第三方扩展或自己编写的 Java 扩展,以增强 Burp 的功能。

  • BApp Store:一个内置的应用商店,可以安装各种社区开发的免费和付费扩展。
  • 常见扩展
    • Autorize:自动化的越权测试工具。
    • Turbo Intruder:比原生 Intruder 速度快得多的攻击工具,用 Python 编写。
    • Copy as cURL:将请求复制为 cURL 命令。

使用场景:自动化特定任务、提高测试效率、利用社区智慧。

Decoder (解码器) - (同上)

Scanner (扫描器) - 自动化漏洞扫描器

可以自动对目标网站进行漏洞扫描,发现常见的安全问题。

  • 扫描类型
    • Passive scanning:被动扫描,不主动发送请求,只分析通过 Proxy 的流量,速度很快,风险低。
    • Active scanning:主动扫描,会主动向服务器发送大量构造好的请求来寻找漏洞,速度慢,可能会对服务器造成压力,甚至被 WAF 拦截。
  • 扫描配置:可以设置扫描范围、扫描策略(排除某些路径或参数)、并发数等。

使用场景:快速发现网站的低垂果实漏洞,如 XSS、SQLi、路径泄露、弱密码等。


实战演练:一个简单的渗透测试流程

假设我们要测试一个登录页面 http://test.com/login

  1. 配置代理:确保浏览器和 Burp 的代理都已正确配置。

  2. 流量拦截 (Proxy)

    • 在浏览器中打开 http://test.com/login,输入用户名 admin 和密码 password,点击登录。
    • Burp 的 "Proxy" -> "Intercept" 会捕获到登录请求。
    • 点击 "Forward" 放行,你就能在 "HTTP history" 中看到这个登录请求和服务器返回的响应。
  3. 分析请求 (Target/HTTP history)

    • 在 "HTTP history" 中找到登录请求,观察请求方法、URL、参数(通常是 usernamepassword)。
  4. 暴力破解密码

    • 右键点击登录请求,选择 "Send to Intruder"。
    • 在 "Intruder" 的 "Positions" 选项卡中,清空所有标记,然后选中 password 参数的值,点击 "Add §" 将其标记为攻击位置。
    • 切换到 "Payloads" 选项卡,选择 "Simple list",将一个包含常见密码的字典粘贴进去(password123, admin, 123456, qwerty 等)。
    • 切换到 "Options" -> "Grep - Match",添加一个标记,内容为 "Login successful" 或类似的成功提示。
    • 点击 "Start attack" 开始攻击,攻击结束后,查看结果,响应长度最短或包含 "Login failed" 的 payload 可能是错误的,而响应长度较长或包含 "Login successful" 的 payload 就是正确的密码。
  5. 手动注入测试

    • 在 "HTTP history" 中再次找到登录请求,右键选择 "Send to Repeater"。
    • 在 "Repeater" 中,修改 password 参数为 ' OR '1'='1 (一个简单的 SQL 注入payload)。
    • 点击 "Go",观察响应,如果返回了所有用户的信息或登录成功,则可能存在 SQL 注入漏洞。
  6. 自动化扫描

    • 在 "Target" 标签页的 "Site map" 中,右键点击整个站点 http://test.com,选择 "Active scan"。
    • 配置扫描范围和策略,然后开始扫描,等待扫描完成后,在 "Scanner" 标签页中查看扫描报告,了解发现的漏洞详情。

高级技巧与最佳实践

  • 使用 SwitchyOmega:方便地在“使用代理”和“直连”之间切换。
  • 善用标记:在 Intruder 中,精确的标记是成功的一半。
  • 关注响应长度:在暴力破解或模糊测试中,响应长度是判断结果最直观的指标之一。
  • 学习正则表达式:在 Grep Match 和 Grep Extract 中,熟练使用正则表达式可以让你更精确地定位信息。
  • 编写自己的扩展:Burp 的现有功能无法满足你的需求,可以学习使用 Burp 的 Extender API 来编写自己的 Java 或 Python 扩展。
  • 保持更新:Burp Suite 和其扩展会不断更新,以应对新的技术和漏洞。

Burp Suite 是 Web 渗透测试的“瑞士军刀”,掌握它需要大量的实践,本教程提供了一个全面的框架,但真正的技巧来自于你在真实世界应用中的不断摸索和尝试。

建议学习路径

  1. 从 Community 版开始,熟悉 Proxy 和 Repeater。
  2. 尝试在本地搭建一个 DVWA (Damn Vulnerable Web Application) 靶场,进行无破坏性的安全测试。
  3. 逐步学习 Intruder 和 Scanner 的高级用法。
  4. 探索 Extender,安装一些流行的扩展,提升效率。

祝你学习愉快,早日成为 Burp Suite 大师!

分享:
扫描分享到社交APP
上一篇
下一篇