ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

CTF-web 之 burp suite 使用

2026/8/6 12:23:34 拓冰建站 浏览量
CTF-web 之 burp suite 使用

 

 

burp suite 使用

一般其是作为一个辅助工具,直接使用来解题的部分是少数,我们可以使用它来观察请 求和响应,并且可以反复的提交,关键的是他还带有很多其他的功能,在我们做题的过程中, 使用的关键点包括:

1.  页面和源码无特殊信息时,可以使用抓包观察

----有无特殊字段, 泄露服务器或 flag 等信息

----对提交的 url 和数据进行观察

2.  使用 reapter 功能,重复的测试提交的数据,观察响应等

3. intruder 爆破功能, 用来进行一些密码, 验证码的爆破

4.  使用 request 的编辑功能,编辑头信息以达到题目要求

 

WEB 基础知识

 

0bc97ae3940549e996aa677b0863ebdb.png

 

具体的看图文介绍

下面就是它的设置界面, 默认的代理是 127.0.0.1  端口 8080

adf1e1b832344e349ea0377d3ae13786.png

 

我们在火狐浏览器中添加插件 foxyproxy

150937b2e31d4c04aa47f6e0ea9dee22.png

这样我们就可以方便的打开浏览器的代理,当然需要提前新建一下

94d332c85ea4412cb112b39aef7a5957.png

那么如何开始抓包呢,第一部打开浏览器代理,然后在打开 Bp 的中断就可以了

1b06483999ef46fa864a70cebbfa9dae.png

这样我们的发送和接受的数据就都会被拦截

f0121ff5bbc84b72b2dcbdae90077c55.png

Forward 是发送的意思,Drop 丢弃请求,Action 则是采取其他一些动作,比较实用之一的就 是 send to repeater|intruder

允许我们不断修改和重复的一个请求,测试中非常有用。

 

7cc2a6b9b6654e3ea7ffbcef7145eb47.png

我们可以实用 16 进制和字符的方式观察请求和响应头,支持随时修改, 重复发送, 并 且返回信息不会进入到浏览器。按钮 go 就是发送信息。

 

 

1)查看和修改 http 请求头

 

burp suite 配合火狐浏览器使用, 将两者全部设为代理并打开断点, 即可观察和修改数 据

一般用于获取请求和响应中的特殊数据, 或用于上传绕过等

使用方法:

(1)运行 Burp site,点击 Proxy 标签,确认 Options 选项卡下,Proxy listeners 的 running 运行正常(勾选状态为运行),如果端口打开失败,可能的原因是有程序

占用了该端口, 点击 edit,在 local  listener port:输入框输入一个未占用的端口,点击 update 即可。

(2)然后设置浏览器代理地址为 127.0.0.1,端口为所选端口, 设置浏览器开始代理 并 打开 burp suite 的 proxy-intercept 的 on 状态

(3)进入上传页面, 选择我们的 asp 木马,点击上传就可以看到 burp suite  已经拦截 在 proxy-intercept-Raw 就是原始数据 也可以 Hex 观察 16 进制数据

(4)鼠标对着 Raw 的内容右击,最后单击 Send To Repeater(包重放),修改之后点击 go 进行发送。

 

常见的有:

Referer 来源伪造

X-Forwarded-For:ip 伪造

User-Agent:用户代理(就是用什么浏览器什么的)

Accept-Language:语言 国家要求

Cookie 的修改

 

 

2intruder 载荷攻击

 

在我们需要大量构造载荷重复请求时 可以使用该插件,该插件可以定制数据类型, 变 化范围,以便进行大量的爆破工作, 当然我们也可以使用编写脚本

 

Burp Intruder 主要有四个选项卡组成:

 

1:Target  用于配置目标服务器进行攻击的详细信息。

2:Positions  设置 Payloads 的插入点以及攻击类型(攻击模式)。

3:Payloads  设置 payload,配置字典

4:Opetions  此选项卡包含了 request headers,request engine,attack results  ,grep match, grep_extrack ,grep payloads 和 redirections。

7c346139b349481daecd9d511d269141.png

 

Positions 的四种攻击模式

 

Sniper:这个模式会使用单一的 payload【就是导入字典的 payload】组。它会针对 每个 position  中$$位置设置 payload。这种攻击类型适合对常见漏洞中的请求参数单独地进 行测试。攻击中的请求总数应该是 position 数量和 payload 数量的乘积。

【一组 payload 独立测试每个位置, 互相没关系】

 

Battering ram   – 这一模式是使用单一的 payload 组。它会重复 payload 并且一次把 所有相同的 payload 放入指定的位置中。这种攻击适合那种需要在请求中把相同的输入放到 多个位置的情况。请求的总数是 payload 组中 payload 的总数。简单说就是一个 playload 字 典同时应用到多个 position 中。

【一组 payload 同步测试所有位置(每个位置都填相同的)】

 

Pitchfork   – 这一模式是使用多个 payload  组。对于定义的位置可以使用不同的 payload 组。攻击会同步迭代所有的 payload 组, 把 payload 放入每个定义的位置中。

【多位置, 每个位置的 payload 是一对一的,即两组 payload 的序号是同步增加】

 

Cluster bomb   – 这种模式会使用多个 payload  组。每个定义的位置中有不同的 payload 组。攻击会迭代每个 payload 组,每种 payload 组合都会被测试一遍。

【多位置, 对于两个位置的 payload,迭代所有的可能组合】

 

63dd965cfc2f4d278d2ea07d68b3c825.png

其中$$之间所夹的信息就是在测试中不断被替换的信息,我们可以编辑需要测试的 位置, 右侧有四个按钮, 也可以手动敲上去或者删除。

 

payload 设置方法

 

关于载荷的设置分为多种不同类型的数据,而后可以选择的范围也会随之变化,初 始设置为 Payload set  和 Payload type

对于常用的数字型, 我们可以选择起始 From  和终止 To  数字, 步长 Step  等,而后 number format 的 Base 会选择进制和 interger digits 整数位数和 fraction digits 小数位数等

2ad2b1bb5b7240f89892430ead1dbea9.png

点击右上角的 start attack 之后, 程序就开始运行了, 中间我们可以观察每次相应的 部分信息,点击可以查看详细的信息。一般我们通过观察长度判断是否达到了目的,因为此 时的长度与其他的不同。(下图只是示意, 并不是实战中的)

 

8c6bc6986a0d4157acc2c94f8f5e9b92.png

2018.10.24 添加

还有一个常用的破解弱口令之类的字典方法

381c8afb00c2405991e1e9cf519817bd.png

我们可以通过 ADD 增加自己编辑的字符串,可以通过 paste 粘贴复制的字符串,可 以通过 load 来读取字典,这时候就需要网上的强大的字典了 dic.txt.

 

option 选项卡包含线程设置,可用于条件竞争

 

2252bc47cbf44376add4b3acad466557.png

numbers of thread 设置线程数目,一般条件竞争时候我们是用不上 payload 的,此

时一般设置为

4fa0d8fe06d5404eaa74214e9430b8af.png

选择 null payloads 方式, 此时由于无法依靠 payload 数目来定义请求数,需要手动 输入 generate 来生成指定的数目的请求

 

3decoder encode

 

加密解密用,各种各样。

 

adce04484a2842f8b62d41e3a7eb3ada.png

下面随意举两个例题,大多数的 Bp 的使用都是很多题中的一个小小的步骤, 在这 里就不详细的讲解了,在看其他题目的时候也会涉及不少的 Bp 的使用

 

 

例题(例题来源于其他博主)

 

猫抓老鼠

 

http://ctf5.shiyanbar.com/basic/catch/

网页有一个输入框, 直接让你输入 key,源码没什么情况, 抓包可以看到许多提交的数 据

6b8bd0da2f6246969f224a793a7bb861.png

比较引人瞩目的就是提交的 passkey=1,响应中有 Content-Row: MTUxMjU4MzgwNA==, 替换 passkey 的值,request 后得到 flag。

 

头有点大

 

Game 19

要求我们使用 framework 9.9 才可以访问,使用 bp 修改头部信息,

df01e19cbc0c426c8d74391314d42239.png

得到 flag(.NET CLR 9.9)

 

 

localhost  允许

 

X-Forwarded-For: 127.0.0.1