声明
学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都
与本人无关,切莫逾越法律红线,否则后果自负
关于brupsuite的那些事儿-brupsuite常用功能介绍
-
- 什么是brupsuite?
- brupsuite有哪些功能模块?
- 如何安装brupsuite呢?
-
- [如何设置 Burp suite中的字体?](#如何设置 Burp suite中的字体?)
- 如何解决brupsuit中文乱码问题
- Scanner模块使用(扫描与漏洞检测)
- Target模块使用(攻击负载)
-
- [site map](#site map)
- [site map 过滤器使用](#site map 过滤器使用)
- Scope模块
- scope实战案例1:
- Proxy模块(拦截HTTP/HTTPS流量)
- 如何拦截响应包
- [Intruder模块 (自定义自动化攻击)](#Intruder模块 (自定义自动化攻击))
-
- [Sniper type(当一把狙击手)](#Sniper type(当一把狙击手))
- [Battering ram](#Battering ram)
- Pitchfork
- [Cluster bomb](#Cluster bomb)
- [Payload type介绍](#Payload type介绍)
-
- [1、Runtime file](#1、Runtime file)
- [2、Custom iterator](#2、Custom iterator)
- [3、Payload Processing](#3、Payload Processing)
- repeater模块
- [Burpsuite 使用技巧](#Burpsuite 使用技巧)
-
- Burpsuite进行自定义目录扫描
-
- 1、抓取指定数据包在Intruder处设置占位符
- 2、设置字典
- [3、 start attack (观察响应代码)](#3、 start attack (观察响应代码))
- 实践是检验真理的唯一标准
什么是brupsuite?
Burp Suite 是一款由 PortSwigger 公司开发的集成式 Web 应用安全测试平台,它被广泛用于发现和利用 Web 应用中的漏洞。
该平台的设计目的是帮助安全测试人员和开发者找到并修复 Web 应用中的安全问题,从而提升整体的应用安全性。
那么brupsuite有哪些模块呢?这里我们以专业版为例
Burp Proxy
:用于拦截、查看和操作HTTP/S和WebSocket流量的工具。
Burp Scanner
:一个高级工具,可以自动发现Web应用程序的安全漏洞。
Burp Intruder
:一个高度可配置的工具,用于对Web应用程序进行自动化攻击,如枚举标识符、收集有用的数据以及使用fuzzing技术探测常规漏洞。
Burp Repeater
:用于手动操作触发单独的HTTP请求,并分析应用程序响应的工具。
Burp Sequencer
:分析不可预知的应用程序会话令牌和重要数据项的随机性的工具。
Burp Decoder
:手动执行或对应用程序数据智能解码编码的工具。
Burp Comparer
:通过一些相关的请求和响应得到两项数据的一个可视化的"差异"的工具。
Burp Spider
:一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
DOM Invader
:简化测试DOM-based漏洞的工具。
Burp Organizer
:存储和注释有趣的消息。
Burp BApp Store
:探索社区创建的扩展。
Bambdas
:使用小段Java代码自定义Burp Suite的功能
brupsuite有哪些功能模块?
Proxy
模块:作为一个拦截 HTTP/S 的代理服务器,允许用户拦截、查看、修改浏览器和目标应用程序之间的原始数据流。
Scanner
模块:一个高级工具,能够自动发现 Web 应用程序的安全漏洞。
Intruder
模块:一个高度可配置的工具,用于对 Web 应用程序进行自动化攻击,如枚举标识符、收集有用数据以及使用 fuzzing 技术探测常规漏洞。
Repeater
模块:用于手动操作触发单独的 HTTP 请求,并修改重放。
Target
模块:显示目标目录结构,汇总所有通过代理服务器直接请求的资源和通过分析响应代理请求的任何物品。
Extension
模块:允许用户扩展 Burp Suite 的功能。
Logger
模块:记录单个工具或整个套件发出的请求和响应。
Comparer
模块:比较两个请求包或响应包的差异。
如何安装brupsuite呢?
这个自行百度,安装比较简单,破解版专业版后续咱写篇,破解版软件其实也比较简单,咱要学的掌握这个工具,不论它怎么变化,本质就是一个工具。
如何设置 Burp suite中的字体?
Burp -> Settings ->HTTP message display
在菜单栏中选择设置,搜索HTTP message display
如何解决brupsuit中文乱码问题
我们需要把字符集更改为UTF-8之后就能正常在数据包查看视图中正常解析中文字符了
Burp -> Settings在User interface中找到Character sets
关于brupsuite汉化的教程已经发过了,相信大家都会,信息收集
Scanner模块使用(扫描与漏洞检测)
1、可以使用scanner模块进行自动扫描
1、新建扫描
2、设置扫描范围
3、设置扫描类型
扫描有爬取和审计,按实际需求选择
你可以自定义扫描策略,选择不同的扫描技术和策略,以适应不同的测试场景和需求。根据目标站点的扫描引擎、漏洞类型、请求速度来平衡选择扫描类型
4、自定义资源池
5、添加爬行任务
比如我们想爬行通过重发的流量
一般来说,实际web渗透测试中,重发很重要,可以测试接口的性能以及重发不同请求参数
Target模块使用(攻击负载)
site map
以树状图的形式展示爬行过的在站点
我们在使用proxy抓取一些信息后,会在targe模块中生成站点信息,用sitemap就可以很方便的展示站点的目录接口,当然只是burpsuite被动扫描的一部分目录,全部目录需要通过爬虫获取(还得是python才行),brupsuite提供了Spider
在Site map中,深色URL是真正有发送过的请求,浅色URL是表示在请求的页面中存在,但还没有访问过的。
在Site map中,深色URL是真正有发送过的请求,浅色URL是表示在请求的页面中存在,但还没有访问过的。
site map 过滤器使用
1、显示符合Scope规则配置的请求:点击Site map上方的过滤器,勾选Show only in-scope items
并保存
2、所有的URL中筛选带有参数的网址,以便于实现代码层面的攻击,如SQL注入等:勾选Show only parameterized requests
大多数情况下,主要是利用post put path delete这样的请求方式,而get一般用来比对。
3、通过关键字搜索过滤,如以下搜索login,信息收集下登录相关的接口很多接口的命令是规范的,所以大驼峰,小驼峰等命名方式是很常见的
4、通过注释或高亮筛选过滤:先给URL添加备注、设置高亮后,在过滤器里勾选Show only commented items
或Show only highlighted items
实现
Scope模块
arget Scope中作用域的定义比较宽泛,通常来说,当我们对某个产品进行渗透测试时,可以通过域名或者主机名去限制拦截内容,这里域名或主机名就是我们说的作用域;如果我们想限制得更细一点,比如,你只想拦截login目录下的所有请求,这时我们也可以在此设置,此时作用域就是目录。总体来说,Target Scope主要使用于下面几种场景中:
限制Site map和Proxy 历史中的显示结果
告诉Burp Proxy 拦截哪些请求
告诉Burp Spider抓取哪些内容
告诉Burp Scanner自动扫描哪些作用域的安全漏洞
在Burp Intruder和Burp Repeater 中指定URL
通过Target Scope 我们能方便地控制Burp 的拦截范围、操作对象,减少无效的请求 。
在scope中主要有两部分功能:包含规则和去除规则,而规则定义室友我们自己添加,毕竟只是使用sitemap过滤依然很麻烦,通过规则就可以很好的避免这些问题。
在包含规则中的,则认为需要拦截处理,会显示在Site map中;而在去除规则里的,则不会被拦截,也不会显示在Site map里。
需注意,要勾选使用高级配置Use advanced scope control
,此时才可从协议、域名/IP、端口、文件名4个维度去配置规则。
scope实战案例1:
1、比如抓包百度:
在site map中选择该网站,右键add to scope,这时,网站会自动将正则表达是添加到scope的包含规则中,就可以实现抓取该数据包。
成功添加
2、选择site map上方的过滤其,勾选Show only in-scope items,则是显示包含规则中的网站了,实现抓取指定的数据包
3、Issue definitions(漏洞列表)
这里是常规的web端漏洞,"Issue Definitions" 提供了一个Web漏洞列表,包括漏洞的描述和参考信息。这对于书写漏洞报告或描述手动测试期间可能已识别的特定漏洞非常有用。
4、对网站进行被动扫描,主动扫描时需要授权的,比如namp扫描
在Site map中,右键网站,点击Passively scan this host
动扫描时,BurpSuite不会重新发送新的请求,只是对已经存在的请求和应答进行分析
对某个数据包进行被动扫描,右键uel 点击Do passive scan
5、导出扫描报告:在Site map中右键网站:Issue--->Report issues for this host
,也就是保存所选项目
Proxy模块(拦截HTTP/HTTPS流量)
Proxy模块功能介绍
如何拦截响应包
1、首先需要需要安装证书,其次浏览器需要安装证书,当然也可以使用open broese子代浏览器,但是一般都是采用火狐浏览器
具体证书证书简单介绍下
安装证书即可
出现该提示则安装证书成功
firfox浏览器安装证书
FoxyProxy配置一下代理
2、拦截响应包
大多数的情况下,是不会抓取到get接口响应体,可以在option中开启
这时候可能出现乱码,可以开启自动url编码或者指定utf-8重启bp即可
3、历史抓包记录查看数据
这里大家都知道web程序分为前端、后端。前端复制页面和数据传递、事件绑定,后端复制获取前端传参,对数据进行分析,接口返回响应数据给前端,所以往往这个环节最容易出现安全问题,所以需要了解就fastapi restful风格的接口如何编写。
6、Match and replace rules(匹配与替换规则)
通过字符串或者正则表达式动态将请求或响应数据中的匹配到的数据进行替换
在安全测试和调试过程或者漏洞挖掘中极为有用,可以帮助测试人员模拟各种情况,测试应用的不同方面,或绕过某些限制
难点就是需要了解基本的请求头以及类型有什么区别,说白了就是信息收集
渗透测试的本质其实都是在进行信息收集。
7、Filter Setting(在历史数据包中过滤指定规则的数据)
过滤筛选功能基本类似,就不过多介绍了,都用用就会了
因为接口之间的数据交互一般都是get-post-get,所以没有类型方法的筛选,也不实用。
Intruder模块 (自定义自动化攻击)
这个模块用的最多,比如密码爆破,登录绕过等都需要用到
我们可以通过设置不同的负载和位置,进行各种复杂的攻击测试。
Payloads 设置
:用户可以定义不同类型的payload,例如字典、数字范围、定制字符集等。这些payload可以被插入到请求的特定位置,用于测试目标的弱点,如尝试不同的用户名和密码组合进行暴力破解,或者测试SQL注入、XSS等漏洞。
位置标记
:Intruder允许用户在请求中标记不同的位置,以便在攻击时替换成不同的payload。这些标记可以是URL参数、Cookie、HTTP请求头、请求正文等。
攻击类型
:提供了不同类型的攻击方式,包括Sniper、Battering Ram、Cluster Bomb、Pitchfork
等。每种攻击方式有不同的特点,适用于不同类型的测试场景。
Sniper(狙击手)
:逐个处理Payload列表中的每个Payload,适用于针对单个位置进行深入测试的场景。
Battering Ram(破城锤)
:与Sniper相比,Battering Ram更有效率,它同时在多个变量中进行插入测试。
Pitchfork(叉子)
:允许设置多个payload,同时处理两个位置,每个位置有各自的Payload列表。
结果分析:Intruder会对每次攻击的结果进行记录,并提供详细的分析报告。用户可以查看每个payload的响应,识别可能的安全漏洞和攻击成功点。
自动化
:用户可以通过设置规则和条件来自动化攻击过程,提高测试效率。例如,设置触发条件,当检测到特定响应内容或状态码时停止攻击。
Target(目标)
:此选项卡用于为攻击配置目标服务器的详细信息,如主机、端口和是否使用HTTPS。
Positions(位置)
:此选项卡用于配置攻击的请求模板、有效负载标记和攻击类型(确定有效负载分配到有效负载位置的方式)。
Payloads(有效载荷)
:此选项卡用于设置payload,配置字典,处理payload的选项,以及payload编码。
Options(选项
):此选项卡包含了请求头、请求引擎、攻击结果、Grep匹配、Grep提取、Grep payloads和重定向等设置。
下面我将通过四个爆破案例来介绍Intruder模块中的不同Attack Type的不同攻击方式。
Sniper type(当一把狙击手)
这里我们要是要知道攻击载荷一般都是非常多,实际接口中传参可能有5-8个左右post,get可能就1-4个左右
这里有什么特点呢?有没有发现变量的位置是单个替换的,也就是说这个适合对单一变量进行枚举测试,比如已经知道用户账号,但是不知密码的情况
具体的需要下来多了解下,比如需要多个参数的时候如何定义等等,本次只是简单使用下 Sniper type功能
Battering ram
一张图,观察就懂这个模式的作用了,这个模式用于多个变量同时执行的情况,比如未知账号和密码的时候
Pitchfork
Pitchfork最多只能设置三个Payload以及三个position,如果超过三个就会出现以下报错
Cluster bomb
顾名思义,炸弹,就是把所有的可能就进行尝试
笛卡尔积计算:
其实brupsuite已经帮我们算好了
Payload type介绍
这里我将通过两个简单的案例来介绍不同的payload type类型能实现什么效果。利用好Payload type我们可以高度自定义化Payload来实现自动化攻击
1、Runtime file
这个有效负载类型允许我们配置一个文件,在运行的时候从中读取有效负载字符串。虽然我们选择Simple list 也能达到同样的效果,但是当需要非常大的Payload列表的时候,此表保存在内存当中,从文件的每一行读取一个负载,选用simple list加载进入内存会增加内存的负荷,所以面大量payload列表的时候选择Runtime file非常不错的选择,也就是字典爆破
去欸但就是就是文件的载荷必须运行且能读取到
攻击需要很大的数据量,也俗称试探
2、Custom iterator
Custom iterator设置字符串的笛卡尔拼接组合。一个占位符上最多设置八种不同的组合。下面我将对Custom iterator做一个详细介绍
这里也可以知道自定义迭代器的好处,应为狙击手只能单点,自定义迭代器可以对单个变量但多线程执行,效率更高
3、Payload Processing
设置Payload规则,通常用于搭配我们的密码字典实现对Payload进行字符处理(篇幅原因这里不过多赘述了)
1、Go to Intruder > Payloads, and scroll down to the Payload encoding field.
2、Select URL-encode these characters.
3、Enter the characters you want to encode.
repeater模块
用来重新发送数据包
Step1:将数据包发送到Repeater模块中
Step2:编辑内容
Step3:点击Send 发送请求数据
Comparer模块
用来比较相同接口请求包的差异,方便快速观察出请求参数的差异,一般用于比较原来接口的传参和我们自己构造的传参
Burpsuite 使用技巧
Burpsuite进行自定义目录扫描
1、抓取指定数据包在Intruder处设置占位符
2、设置字典
所以大家看到这里,应该懂什么最重要了吧,没错,就是字典,字典从哪里来,还是靠信息收集,还是那句话,渗透的本质就是信息收集
3、 start attack (观察响应代码)
过滤状态200的码,我们只看有有误的,如何利用py去重错误状态的字段,在保留正确的字典,在进行相同的操作即可,最终确定正确的账号和密码即可。
感谢大家阅读这篇关于Burp Suite使用教程的文章。希望通过这篇指南,能帮助你们更好地掌握Burp Suite的基础模块,快速上手并应用到实际的Web安全测试中