CTF-web 第四部分 burp suite使用

四. burp suite使用

一般其是作为一个辅助工具,直接使用来解题的部分是少数,我们可以使用它来观察请求和响应,并且可以反复的提交,关键的是他还带有很多其他的功能,在我们做题的过程中,使用的关键点包括:
1. 页面和源码无特殊信息时,可以使用抓包观察
----有无特殊字段,泄露服务器或flag等信息
----对提交的url和数据进行观察
2. 使用reapter功能,重复的测试提交的数据,观察响应等
3. intruder爆破功能,用来进行一些密码,验证码的爆破
4. 使用request的编辑功能,编辑头信息以达到题目要求

WEB基础知识

HTML超文本标记语言,采用标签的方式分类元素,使用CSS层叠样式控制,另外可以插入js脚本,即<script>标签
HTTP超文本传输控制协议 应用层协议在tcp/ip之上,通过多个字段属性控制网页的访问,传输。

常用请求方式GET--> 参数形式 index.php?a=123&b=431
POST--> 附加在字段之后,空一行 然后附加数据

常见的字段作用就不详细讲解了。

我们使用Bp观察的目标就是提交的数据(get和post)和返回的响应,对于格式这里也不做详细的介绍,在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选项卡下,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:用户代理(就是用什么浏览器什么的)
http://lab1.xseclab.com/base6_6082c908819e105c378eb93b6631c4d3/index.php //.net的版本修改,后面添加,如版本9 .NET CLR 9
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。
在这里插入图片描述
你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。

当我们把请求send to inturder之后,我们就会在Positions选项卡中发现可以进行测试的载荷数据被 d a t a data 包含在中间,这就是Payloads字典破解中不断替换的载荷目标,

我们可以通过选项卡上的 add $ clear $ auto $ 等功能操作标记$,当然也可是手动自己修改。

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小数位数等
在这里插入图片描述
点击右上角的start attack之后,程序就开始运行了,中间我们可以观察每次相应的部分信息,点击可以查看详细的信息。一般我们通过观察长度判断是否达到了目的,因为此时的长度与其他的不同。(下图只是示意,并不是实战中的)
在这里插入图片描述
(3)decoder encode
加密解密用,各种各样。
在这里插入图片描述

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

例题(例题来源于其他博主)
1.猫抓老鼠 http://ctf5.shiyanbar.com/basic/catch/
网页有一个输入框,直接让你输入key,源码没什么情况,抓包可以看到许多提交的数据
在这里插入图片描述
比较引人瞩目的就是提交的passkey=1,响应中有Content-Row: MTUxMjU4MzgwNA==,替换passkey的值,request后得到flag

2.头有点大 http://ctf5.shiyanbar.com/sHeader/
要求我们使用framework 9.9才可以访问,使用bp修改头部信息,https://images2017.cnblogs.com/blog/1242616/201712/1242616-20171207023515550-1104939944.png 得到flag(.NET CLR 9.9)

3.localhost 允许
X-Forwarded-For: 127.0.0.1

猜你喜欢

转载自blog.csdn.net/iamsongyu/article/details/82989478