CTF-web 之 burp suite使用

  • A+
所属分类:CTF专场 逆向工程

CTF-web 之 burp suite使用



burp suite使用

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

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

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

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

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

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

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

WEB基础知识

CTF-web 之 burp suite使用

具体的看图文介绍
下面就是它的设置界面,默认的代理是127.0.0.1 端口8080

CTF-web 之 burp suite使用

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

CTF-web 之 burp suite使用

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

CTF-web 之 burp suite使用

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

CTF-web 之 burp suite使用

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

CTF-web 之 burp suite使用

Forward是发送的意思,Drop丢弃请求,Action则是采取其他一些动作,比较实用之一的就是send to repeater|intruder
允许我们不断修改和重复的一个请求,测试中非常有用。

CTF-web 之 burp suite使用

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

 

 

1)查看和修改http请求头

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

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

使用方法:

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

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

2)然后设置浏览器代理地址为127.0.0.1,端口为所选端口,设置浏览器开始代理 并打开burp suiteproxy-intercepton状态

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

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

 

常见的有:

Referer来源伪造

X-Forwarded-Forip伪造

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

Accept-Language:语言国家要求

Cookie的修改

 

2intruder载荷攻击

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

 

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

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

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

3Payloads 设置payload,配置字典

4Opetions 此选项卡包含了request headersrequest engineattack results grep matchgrep_extrackgrep payloadsredirections

CTF-web 之 burp suite使用

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,迭代所有的可能组合】

CTF-web 之 burp suite使用

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

payload设置方法

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

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

CTF-web 之 burp suite使用

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

CTF-web 之 burp suite使用

2018.10.24添加

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

CTF-web 之 burp suite使用

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

 

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

CTF-web 之 burp suite使用

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

CTF-web 之 burp suite使用

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

3decoder encode

加密解密用,各种各样。

CTF-web 之 burp suite使用

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

 

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

猫抓老鼠

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

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

CTF-web 之 burp suite使用

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

 

头有点大

http://ctf5.shiyanbar.com/sHeader/

要求我们使用framework9.9才可以访问,使用bp修改头部信息,

CTF-web 之 burp suite使用

得到flag.NET CLR 9.9

 

localhost 允许

X-Forwarded-For: 127.0.0.1

 

 


本文始发于微信公众号(LemonSec):CTF-web 之 burp suite使用

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: