burp suite使用
一般其是作为一个辅助工具,直接使用来解题的部分是少数,我们可以使用它来观察请求和响应,并且可以反复的提交,关键的是他还带有很多其他的功能,在我们做题的过程中,使用的关键点包括:
1. 页面和源码无特殊信息时,可以使用抓包观察
----有无特殊字段,泄露服务器或flag等信息
----对提交的url和数据进行观察
2. 使用reapter功能,重复的测试提交的数据,观察响应等
3. intruder爆破功能,用来进行一些密码,验证码的爆破
4. 使用request的编辑功能,编辑头信息以达到题目要求
WEB基础知识
具体的看图文介绍
下面就是它的设置界面,默认的代理是127.0.0.1 端口8080
我们在火狐浏览器中添加插件foxyproxy
这样我们就可以方便的打开浏览器的代理,当然需要提前新建一下
那么如何开始抓包呢,第一部打开浏览器代理,然后在打开Bp的中断就可以了
这样我们的发送和接受的数据就都会被拦截
Forward是发送的意思,Drop丢弃请求,Action则是采取其他一些动作,比较实用之一的就是send to repeater|intruder
允许我们不断修改和重复的一个请求,测试中非常有用。
我们可以实用16进制和字符的方式观察请求和响应头,支持随时修改,重复发送,并且返回信息不会进入到浏览器。按钮go就是发送信息。
(1)查看和修改http请求头
burp suite配合火狐浏览器使用,将两者全部设为代理并打开断点,即可观察和修改数据
一般用于获取请求和响应中的特殊数据,或用于上传绕过等
使用方法:
(1)运行Burp site,点击Proxy标签,确认Options选项卡下,Proxylisteners的running运行正常(勾选状态为运行),如果端口打开失败,可能的原因是有程序
占用了该端口,点击edit,在locallistener port:输入框输入一个未占用的端口,点击update即可。
(2)然后设置浏览器代理地址为127.0.0.1,端口为所选端口,设置浏览器开始代理 并打开burp suite的proxy-intercept的on状态
(3)进入上传页面,选择我们的asp木马,点击上传就可以看到burpsuite已经拦截在proxy-intercept-Raw就是原始数据也可以Hex观察16进制数据
(4)鼠标对着Raw的内容右击,最后单击SendTo Repeater(包重放),修改之后点击go进行发送。
常见的有:
Referer来源伪造
X-Forwarded-For:ip伪造
User-Agent:用户代理(就是用什么浏览器什么的)
Accept-Language:语言国家要求
Cookie的修改
(2)intruder载荷攻击
在我们需要大量构造载荷重复请求时 可以使用该插件,该插件可以定制数据类型,变化范围,以便进行大量的爆破工作,当然我们也可以使用编写脚本
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。
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,迭代所有的可能组合】
其中$$之间所夹的信息就是在测试中不断被替换的信息,我们可以编辑需要测试的位置,右侧有四个按钮,也可以手动敲上去或者删除。
payload设置方法
关于载荷的设置分为多种不同类型的数据,而后可以选择的范围也会随之变化,初始设置为Payload set 和 Payload type
对于常用的数字型,我们可以选择起始From和终止To数字,步长Step等,而后number format的Base会选择进制和interger digits整数位数和fraction digits小数位数等
点击右上角的startattack之后,程序就开始运行了,中间我们可以观察每次相应的部分信息,点击可以查看详细的信息。一般我们通过观察长度判断是否达到了目的,因为此时的长度与其他的不同。(下图只是示意,并不是实战中的)
2018.10.24添加
还有一个常用的破解弱口令之类的字典方法
我们可以通过ADD增加自己编辑的字符串,可以通过paste粘贴复制的字符串,可以通过load来读取字典,这时候就需要网上的强大的字典了dic.txt.
option选项卡包含线程设置,可用于条件竞争
numbers of thread设置线程数目,一般条件竞争时候我们是用不上payload的,此时一般设置为
选择nullpayloads方式,此时由于无法依靠payload数目来定义请求数,需要手动输入generate来生成指定的数目的请求
(3)decoder encode
加密解密用,各种各样。
下面随意举两个例题,大多数的Bp的使用都是很多题中的一个小小的步骤,在这里就不详细的讲解了,在看其他题目的时候也会涉及不少的Bp的使用
例题(例题来源于其他博主)
猫抓老鼠
http://ctf5.shiyanbar.com/basic/catch/
网页有一个输入框,直接让你输入key,源码没什么情况,抓包可以看到许多提交的数据
比较引人瞩目的就是提交的passkey=1,响应中有Content-Row:MTUxMjU4MzgwNA==,替换passkey的值,request后得到flag。
头有点大
http://ctf5.shiyanbar.com/sHeader/
要求我们使用framework9.9才可以访问,使用bp修改头部信息,
得到flag(.NET CLR 9.9)
localhost 允许
X-Forwarded-For: 127.0.0.1
本文始发于微信公众号(LemonSec):CTF-web 之 burp suite使用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论