🛠️ BurpSuite 安装及使用教程
1. BurpSuite 简介
Burp Suite 是用于攻击 Web 应用程序的集成平台,包含了许多工具。Burp Suite 为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的 HTTP 消息、持久性、认证、代理、日志、警报。
2. BurpSuite 2021 安装及配置
2.1 JDK 选择及配置
版本对应关系
- BurpSuite 1.7.x → Java 8
- BurpSuite 2021 → Java 11
⚠️ 注意:
原文提到“Java 17 不能用”是基于 2021 年的语境。在当前(2026 年),BurpSuite 新版本通常已支持 Java 17+。请根据你实际下载的 Burp 版本选择对应的 JDK。
下载
本教程使用的是 2021 年的 Burp,因此下载 Java 11(亲测 Java 17 不适用)。推荐免安装版。

Oracle 账号(临时使用):
可访问 bugmenot 查找可用账号,示例:
1602404824@qq.com/wf1996ROOT#908344069@qq.com/Java2019
下载后解压至自定义路径,例如 D:/Java/jdk11。
配置
方法一:配置环境变量
- 右键“此电脑” → 属性 → 高级系统设置 → 环境变量。

- 在系统变量中:
- 新建
JAVA_HOME,值为D:\Java\jdk11 - 编辑
PATH,添加%JAVA_HOME%\bin - 如果有
jre目录,添加%JAVA_HOME%\jre\bin - (可选)新建
CLASSPATH,值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 新建
- 保存后打开 CMD 执行
java -version,应显示 Java 11。

方法二:运行时指定 Java 路径
启动 Burp 时直接使用 Java 11 的绝对路径:
| |
注意:路径中不能包含中文和空格。
2.2 BurpSuite 下载安装及激活
下载
Burp 官方下载页面
下载 Professional 版本的 JAR 包。

运行
在 CMD 中执行:
| |

激活
- 下载注册机:BurpLoaderKeygen
- 在 CMD 中运行注册机:
1java -jar BurpLoaderKeygen.jar - 按照注册机界面提示操作(复制 License、手动激活等)。

成功标志:界面显示 “Success”。
汉化参考:简书教程
汉化包(百度网盘):链接 https://pan.baidu.com/s/1VYJGTzbdG5kVqVTVxxbsGQ 提取码 39en
2.3 BurpSuite 快捷启动方式选择
方法一:bat 脚本
创建 run.bat,内容(根据实际文件修改):
| |

方法二:vbs 静默脚本
创建 run.vbs:
| |
补充:创建桌面快捷方式.bat
| |
方法三:exe 启动
可参考 B 站视频:BurpSuite 2021 教程
3. BurpSuite 的使用
3.1 配置浏览器代理
要想在自己使用的浏览器上使用 burpsuite 的话,需要为自己的浏览器安装证书。当然也可以不安装证书,因为 burpsuite 里有自带的 谷歌浏览器,按需求来。
方式一:系统代理下载证书
- Windows 设置 → 网络和 Internet → 代理 → 手动设置代理,地址
127.0.0.1,端口8080。
- 浏览器访问
http://burp(http://burpsuite/) 下载 CA 证书。
- 点击 “CA Certificate” 保存
cacert.der。
- 在浏览器中导入该证书(受信任的根证书颁发机构),然后访问
https://www.baidu.com测试。
方式二:Burp 生成证书
- 打开 Burp → Proxy → Proxy Settings。

- 生成 CA 证书。

- 按方式一的步骤 3 安装证书。
方式三:Burp 内嵌浏览器
- 打开 Burp → Proxy → open for browser (打开内嵌浏览器)
3.2 Proxy 模块
Burp Proxy 是Burp Suite以用户驱动测试流程功能的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端和服务端之间传输的数据。
Intercept(拦截)
- Forward:放行请求
- Drop:丢弃请求
- Intercept is on/off:开关拦截
- Action:发送到其他模块
- Raw / Hex / Params / Header:查看不同格式
HTTP History
- 记录所有 HTTP 流量,支持过滤(Filter)
- 右键记录可执行更多操作
WebSockets History
- 类似 HTTP History,用于 WebSocket 通信
Options(重要设置)
- Proxy Listeners:设置监听端口
- Intercept Client Requests:配置请求拦截规则
- Intercept Server Responses:配置响应拦截规则
- Miscellaneous:杂项(如自动添加请求头)

3.3 Target 模块
Burp Target 组件主要包含站点地图、目标域、Target 工具三部分组成,他们帮助渗透测试人员更好地了解目标应用的整体状况、当前的工作涉及哪些目标域、分析可能存在的攻击面等信息
Scope(作用域)
- 限制拦截、扫描的目标范围(域名、目录等)。

Site Map(站点地图)
- 左侧树形结构展示 URL 层级,右侧展示请求/响应详情。
3.4 Spider(爬虫)
智能爬虫,枚举应用内容与功能。
3.5 Scanner(扫描器,仅专业版)
自动发现 Web 漏洞。
3.6 Intruder(入侵器)
Intruder——是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
教程:Intruder Attack type&Payloads – 拥有上千种姿态的攻击模式
Target
- Host:目标 URL
- Port:端口(HTTP 80,HTTPS 443)

Positions(攻击模式)
- Sniper:单个 payload 集合,依次替换每个变量
- Battering ram:单个 payload 集合,同时替换所有变量(值相同)
- Pitchfork:多个 payload 集合,按位置一一对应(数量需相同)
- Cluster bomb:多个 payload 集合,笛卡尔积组合
1、Sniper(狙击枪)
第一种攻击模式: Sniper
sniper的特点是只需要指定一个Payload Set,不管你Positions中有几个变数,都是一个Payload Set,但会针对每个变数逐项的替换。 在替换第一个位置变量的时候,第二个是不会动的,也就是替换第一个位置的时候,第二个会是原始值,而测试完第一个位置时,才会测试二个位置。 所以假设尝试替换账号密码,利用Payload内容是11,22,33,aa,bb,cc。进行暴力破解时,会去尝试: admin:11 admin:22 admin:33 admin:aa admin:bb admin:cc 11:password0000 22:password0000… 这样依序下去。
字段中Position的意思是表示第几个变量,因为我们只有设定两个, 账号§admin§就是position 1,而密码§password0000§就是position 2。 demo如下图: 
2、Battering ram(攻城槌)
第二种攻击模式: Battering ram
这种攻击模式实际上比第一种还好理解,也是不管你Positions中有几个变数,都是一个Payload Set。 并且每个变量位置的值都会是一样的。 所以假设尝试替换账号密码,账号内容是11,22,33,aa,bb,cc 进行暴力破解时,会去尝试 11:11 22:22 33:33 aa:aa… 这样依序下去 demo如下图:  
3、Pitchfork(干草叉)
第三种攻击模式: Pitchfork
不能只输入一个字典,每个变量要有自己的字典文件,也就是说每个变量有一个属于自己的Payload set,但是要注意的是每个Payload set里面的payload个数要一样。 (当然其实payload set不一样也是没关系,还是可以执行,只是多出来的那些payload不会被送出去而已。) 假设两个Position各有自己的Payload Set, Position 1,也就是账号的地方,Payload是11,22,33 Position 2,也就是密码的地方,Payload是aa,bb,cc 尝试结果会是 11:aa 22:bb 33:cc demo如下图:   
4、Cluster bomb(集束炸弹)
第四种攻击模式: Cluster bomb
这种方式也是每个变量都要输入字典,但是不会像Pitchfork是一对一的关系,而是每个都会去尝试到,逐项地去尝试一多对的方式。
假设两个Position各有自己的Payload Set, Position 1,也就是账号的地方,Payload是11,22,33 Position 2,也就是密码的地方,Payload是aa,bb,cc 尝试结果会是 11:aa 11:bb 11:cc 22:aa 22:bb … demo如下图:   
Payload type(部分常用)
- Simple list:手动输入或加载字典文件
- Runtime file:大文件字典(不显示内容)
- Custom iterator:多位置组合
- Number:数字序列(起始、步长、进制)
- Brute force:字符集暴力枚举
- Null payloads:重复相同请求
介绍完了四种Attack Mode之后,要来提的就是Payload type,虽然我们前面用的Payload type都是Simple list,(实际上最常用的也是Simple list)。不过Burp所支持的Payload type可是相当的多样化。  
Simple list
首先Simple list可以算是最基本的,用法很简单,可以直接输入按Add,也可以上传文档。 虽然这边我们demo都是手动输入,不过实际上要执行暴力破解等动作,通常Payload一定会是很大量的,用手输入可能会累死,所以实际上都是用选择上传文件的方式。
那至于字典文件要去哪里找,就…自己到处随便用关键词找找,因为满多地方都有各种不同的字典的或是Payload文档。 谈起Payload与字典文件可能又会无限发散,这边就随便放个SecLists让大家参考参考: https://github.com/danielmiessler/SecLists/tree/master/Passwords
Runtime file
Runtime file 是指定文档,让你直接选择文档,每一行就是一个Payload,其实这个跟Simple list直接Load就是一样的意思而已,只是Simple list如果汇入的文档很大,会因为画面要显示出来给你看,所以会跑很久,Runtime file没有要显示给你看,所以没这个问题。 
Custom iterator
Custom iterator这个稍微就有点小复杂了,首先先注意到这边里面也有个Position 1~8
8个都可以输入不同的Payload Set,也就是说八个之间会去做排列组合,但是前后的顺序不会改变, 最后的结果 = position1 + position2 + position3。 为了方便demo,用的是Battering ram攻击模式,Payload的Position: Position 1: 11,22,33 Position 2: aa,bb,cc Position 3: dog,cat
最后执行的payload会是: 11aadog 22aadog 33aadog 11bbdog 22bbdog … 以此类推总共18组payload:    
Character substitution
Character substitution 字符替换的意思,也就是你可以设定把某个字符修改成另一个字符,其实可以算还是会从原本Simple list去延伸,所以看到item的地方跟Simple list一样。 跑完原本的Payload之后会做字符的替换。 所以假设我的payload输入abcd,可以看到字符替换的规则有a->4,b->8;所以暴力破解时送完原始的payload abcd之后。有单独把a换成4,有单独把b换成8,也有两个都换的。   
Recursive grep
Recursive grep 其实听起来有点复杂,但是其实没那么复杂XD 可是我没好的范例demo。 是从上一次的响应结果中,取得部分特定内容作为下次请求的Payload。
Illegal Unicode
这个我也是第一次发现原来Burp还有这一招,利用Illegal Unicode进行Bypass。 因为不是很理解,让我先默默跳过…
Character blocks
Character blocks,举例,可以插入很多个A,起始要几个,每次增加多少个A,到多少个要停止,通常比较适用在测试overflow。   
Number
Number测试数字,这个也算是实际工作上很常用到的,可以设定起始多少到结尾多少,间隔多少数字, 也可以选择十进制与Hex,还有是否要小数点。  
Datas
如其名,就是用来测时间日期格式的Payload。 
Brute Force
Brute Force是纯粹的暴力破解,这个其实算是我除了Simple与Number以外,可能比较常用到的之一,Payload的产生方式就是Character set中的所有字符排列组合都会试过,那也可以设定最小的长度与最大的长度,不过要注意就是Brute Force很容易一不小心Payload数量就超多的。 
Null payloads
Null payloads 其实就是重复同样的原始请求,没有进行修改,你可能会好奇这样有什么意义?! 那这个就是等到你遇到需要的场景就会知道意义了,通常可能是做观察与搜集数据的时候用,比如要确认一直重复发起一样的请求,是否服务器都会给一样的响应。
Character frobber
Character frobber 会按照顺序去递增每个字符的一个ASCII,感觉这个有点冷门,好像其实是满实用的,用途主要应该是用来确认token的每个字符是否有作用。
Bit flipper
Username generator
用户名生成。
ECB block shuffler
ECB block shuffler 牵扯到加密模式,先不管他。
Payload Processing
对 payload 进行加工(添加前缀/后缀、编码、正则替换等)。例如可以加入前缀、后缀字符、只截取字符串的某一部分等;后缀常见的可能像是Email结尾的字符,比如@gmail.com之类的。
可以利用match替换,可以反转,可以编码,许多方法可以选择。

Payload Encoding
自动对特殊字符进行 URL 编码。这边则是勾选的话,Payload如果有match的characters就会进行URL-encode。 
Repeater
3.7 Repeater(重发器)
手动修改并重发单个请求。
3.8 Sequencer(序列器)
分析 token 随机性。
3.9 Decoder(解码器)
编解码工具(Base64、URL、HTML 等)。
3.10 Comparer(比较器)
可视化对比两个请求/响应的差异。
