Burpsuite工具的基础用法
Posted 南岸青栀*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Burpsuite工具的基础用法相关的知识,希望对你有一定的参考价值。
文章目录
Burpsuite工具的基础用法
Burp Suite是用于Web应用安全测试、攻击Web应用程序的集成平台,它将各种安全工具无缝地融合在一起,以支持整个测试过程中,从最初的映射和应用程序的攻击面分析,到发现和利用安全漏洞。
Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。Burp Suite结合先进的手工技术与先进的自动化,使你的工作更快,更有效,更有趣。
本次主要使用的是2020.12.1版本的burpsuite
略过安装、略过配置burpsuite证书(PS:网上随便找,一大堆)。
Burpsuite主界面
功能
BurpSuite的模块几乎包含整个安全测试过程,从最初对目标程序的信息采集,到漏洞扫描及其利用,多模块间高融合的配合,使得安全测试的过程更加高效。
模块 | 解释 |
---|---|
Target(目标) | 显示目标目录结构 |
Proxy(代理) | Burpsuite设置代理,抓取数据包。用于拦截HTTPS的代理服务器,作为浏览器和目标应用程序之间的中间件,允许拦截、查看、修改两个方向上的原始数据流 |
Spider(爬虫) | BurpSuite的爬虫功能是用来抓取Web应用程序的链接和内容等 |
Scanner(扫描器) | 能够自动发现Web应用程序的安全漏洞。主要用来扫描Web应用程序漏洞,发现常见的Web安全漏洞,但会存在误报的可能 |
Intruder(入侵) | 一个定制的高度可配置工具,可以对Web应用程序进行自动化攻击和暴力猜解 |
Repeater(中继器) | 对数据包进行重放(手动操作来触发单独的HTTP请求)分析服务器返回情况和响应,判断修改参数的影响 |
Sequencer(会话) | 用来检查Web应用程序提供的会话令牌的随机性,分析哪些不可预知的应用程序会话令牌和重要数据项的随机性,并执行各种测试 |
Decoder(解码器) | 对数据进行加解密操作,包含url、html、base64等等 |
Comparer(对比) | 用来执行任意两个请求、响应或者任何其他性质的数据之间的比较,通常是通过一些相关的请求和响应得到两项数据的可视化差异 |
Extender(扩展) | 加载Burpsuite的扩展,使用自己或第三方代码来扩展burpsuite的功能 |
Options(设置) | 对Burpsuite的一些甚至,如burp、字体、编码等 |
Alerts(警告) | 用来存放错误信息的,用来解决错误 |
1.配置代理
我是用的是SwitchyOmega代理,设置一下
设置好之后就OK了
Target
该功能主要用于查看网站的目录及元素,
内容包括Host、提交方式,URL、参数、状态码、标题、Comment、Time等,并能够设置对应网址的注释Comment
scope
简单做一些抓包的过滤
好像也没什么了
Proxy
Proxy主要包括Intercept、HTTP histroy 、Websockets history、Options四个标签
模块:intercept
用于显示修改HTTP请求及响应内容,并可以将拦截的HTTP请求快速发送到其他模块处理。
选项 | 解释 |
---|---|
Forward | 用于发送数据。当把所需要的HTTP请求编辑编辑完成后,手动发送数据。 |
Drop | 将该请求包丢弃。 |
Intercept is off/on | 拦截开关。当处于off状态下时,BurpSuite会自动转发所拦截的所有请求;当处于on状态下时,BurpSuite会将所有拦截所有符合规则的请求并将它显示出来等待编辑或其他操作。 |
Action | 功能菜单,与右键菜单内容相同,在这可以将请求包发送到其他的模块或者对数据包进行其他的操作,菜单中的详细功能我们会在后续课程中陆续说明。 |
模块:http history
这里将记录经过代理服务器访问的所有请求,其实当intercept is off也会记录
Host(主机)、Method(请求方式)、URL(请求地址)、Params(参数)、Edited(编辑)、Status(状态)、Length(响应字节长度)、MIME type(响应的MLME类型)、Extension(地址文件扩展名)、Title(页面标题)、Comment(注释)、SSL、IP(目标IP地址)、Cookies、Time(发出请求时间)、Listener port(监听端口)。
模块:WebSockets history
这个版块用于记录WebSockets的数据包,是HTML5中最强大的通信功能,定义了一个全双工的通信信道,只需Web上的一个 Socket即可进行通信,能减少不必要的网络流量并降低网络延迟。
模块:Options
该板块主要用于设置代理监听、请求和响应、拦截反应、匹配和替换,ssl等。
选项1:Proxy Listeners
代理侦听器是侦听从您的浏览器传入的连接本地HTTP代理服务器。它允许您监视和拦截所有的请求和响应,并且位于BurpProxy的工作流的心脏。默认情况下,Burp默认监听12.0.0.1地址,端口8080。要使用这个监听器,你需要配置你的浏览器使用127.0.0.1:8080作为代理服务器。此默认监听器是必需的测试几乎所有的基于浏览器的所有Web应用程序。
选项 | 解释 |
---|---|
add | 添加一个新的代理地址 |
binding | 新建一个代理,bind to port 绑定端口号,bind to address 绑定ip地址 |
request hadning | 包括选项来控制是否burpsuite重定向通过此侦听器接收到的请求 |
Redirect to host | 如果配置了这个选项,Burp会在每次请求转发到指定的主机,而不必受限于览器所请求的目标。需要注意的是,如果你正使用该选项,则可能需要配置匹配/替换规则重写的主机中的请求,如果服务器中,您重定向请求预期,不同于由浏览器发送一个主机头。 |
Force use of SSL | 如果配置了这个选项,Burp会使用HTTPS在所有向外的连接,即使传入的请求中使用普通的HTTP。您可以使用此选项,在与SSL相关的响应修改选项结合,开展sslstrip般的攻击使用Burp,其中,强制执行HTTPS的应用程序可以降级为普通的HTTP的受害用户的流量在不知不觉中通过BurpProxy代理。 |
Certificate | 这些设置控制呈现给客户端的SSL服务器的SSL证书。 |
Generate CA-signed per-host certificate | 这是默认选项。安装后,BurpSuite创造了一个独特的自签名的证书颁发机构(CA)证书,并将此计算机上使用,每次BurpSuite运行。当你的浏览器发出SSL连接到指定的主机,Burp产生该主机,通过CA证书签名的SSL证书。您可以安装BurpSuite的CA证书作为在浏览器中受信任的根,从而使每个主机的证书被接受,没有任何警报。您还可以导出其他工具或Burp的其他实例使用CA证书。 |
Generate a CA-signed certificate with a specific hostnam | 这类似于前面的选项;然而,Burp会产生一个单一的主机证书与每一个SSL连接使用,使用您指定的主机名。在进行无形的代理时,此选项有时是必要的,因为客户端没有发送连接请求,因此Burp不能确定SSL协议所需的主机名。你也可以安装BurpSuite的CA证书作为受信任的根。 |
Use a custom certificate | 此选项使您可以加载一个特定的证书(在PKCS#12格式)呈现给你的浏览器。如果应用程序使用它需要特定的服务器证书(例如一个给定序列号或证书链)的客户端应该使用这个选项。 |
edit | 编辑选中的代理地址。相关选项类似于add,不再叙述。 |
remove | 删除选中代理地址。 |
选项2:Intercept Client Requests
配置拦截规则,设置拦截的匹配规则。 当Intercept request based on the following rules为选中状态时,burpsuite会配置列表中的规则进行拦截或转发。注意:如果该复选框未选中,那么即使Intercept is on也无法截取数据包。
选项3:Intercept Server Responses
功能类似与选项2,配置拦截规则,设置拦截的匹配规则,不过这个选项是基于服务端拦截,当选项的Intercept request based on the following rules为选中状态时,burpsuite会匹配响应包
后面的请看https://www.jianshu.com/p/73e1b0a974cc添加链接描述
Intercept模块
该模块主要是控制抓取到的数据包,用于显示修改HTTP请求及响应内容,并可以将拦截到的HTTP请求快速发送到其他模块处理
选项1:Target
用于配置目标服务器进行攻击的详细信息。
不说了,感觉基本用不上
选项2:Positions
设置Payloads的插入点以及攻击类型(攻击模式)。
- attack type:攻击模式设置
- sniper:对变量依次进行破解。多个标记依次进行。
- battering ram:对变量同时进行破解。多个标记同时进行。
- pitchfork:每一个变量标记对应一个字典,取每个字典的对应项。
- cluster bomb:每个变量对应一个字典,并且进行交集破解,尝试各种组合。适用于用户名+密码的破解。
- add:插入一个新的标记
- clear:清除所有的标记
- auto:自动设置标记,一个请求发到该模块后burpsuite会自动标记cookie URL等参数
- refresh:如果必要的话,这可以要求模板编辑器的语法高亮。
选项3:Payloads
设置payload,配置字典
设置1:PayloadSets
Payload数量类型设置
- Payload Set:指定需要配置的变量
- Payload type:Payload类型。
- 这里只介绍部分常用Payload,其他Payload可自行研究。
- Simple list:简单字典
- Runtime file:运行文件
- Custom iterator:自定义迭代器
- Character substitution:字符替换
- Recursive grep:递归查找
- lllegal unicode:非法字符
- Character blocks:字符块
- Numbers:数字组合
- Dates:日期组合
- Brute forcer:暴力破解
- Null payloads:空payload
- Username generator:用户名生成
- copy other payload:复制其他payload
设置2:Payload Opetions[Payload type]
该选项会根据选项1中Payload type的设置而改变
设置3:Payload Processing
对生成的Payload进行编码、加密、截取等操作
暂时没用到,就先不说了,之后补充
设置4:Payload Encoding
此设置可用于在最终有效负载中对选定字符进行url编码,以便在HTTP请求中进行安全传输。
选项4:Options
设置1:Request Headers
这些设置控制在Intruder是否更新配置请求头。
设置2:Requset Engine
设置发送请求的线程、超时重传
- Number of threads:线程,该选项控制攻击请求的并发数。
- Number of retries on network failure:网络故障的重试次数 -
如果出现连接错误或其他网络问题,Burp会放弃和移动之前重试的请求指定的次数。 - ause before retry:重试前等待时间,当重试失败的请求,Burp会等待指定的时间(以毫秒为单位),然后重试。
- Throttle between requests:请求之间的等待时间,Burp可以在每次请求之前等待一个指定的延迟(以毫秒为单位) 。此选项很有用,以避免超载应用程序,或者是更隐蔽。
- Start time:开始时间,此选项允许您配置攻击立即启动,或在指定的延迟后,或开始处于暂停状态。
设置3:Attack Results
设置攻击结果的显示。
- Store requests/responses:存储请求/响应,这个选项确定攻击是否会保存单个请求和响应的内容
- Make unmodified baseline request:未修改的基本请求,如果选择此选项,那么除了配置的攻击请求,Burp会发出模板请求设置为基值,所有有效载荷的位置。此请求将在结果表显示为项目# 0 。使用此选项很有用,提供一个用来比较的攻击响应基地的响应。
- Use denial-of-service mode:使用拒绝服务的模式,如果选择此选项,那么攻击会发出请求,如正常,但不会等待处理从服务器收到任何答复。只要发出的每个请求,TCP连接将被关闭。这个功能可以被用来执行拒绝服务的应用层对脆弱的应用程序的攻击,通过重复发送该启动高负荷任务的服务器上,同时避免通过举办开放套接字等待服务器响应锁定了本地资源的请求。
- Store full payloads:保存完整的有效载荷。如果选择此选项,Burp将存储全部有效载荷值的结果。
设置4:Grep-Match
在响应中找出存在指定的内容的一项。
可以通过列表旁边的操作按钮对列表中的选项进行操作,我们也可以通过add添加我们自定义的内容。
- Match:匹配类型,指定的表达式是否是简单的字符串或regular expressions(正则表达式)。
- Case sensitive match:区分大小写的匹配,指定检查表达式是否应区分大小写。
- Exclude HTTP headers:排除HTTP头,指定的HTTP响应头是否应被排除在检查。
补充知识:
在系统登录时,密码加密流程一般是先将用户名和密码发送到服务器,服务器会把用户提交的密码经过Hash算法加密后和数据库中存储的加密值进行比对,如果加密值相同,则判断用户提交密码正确
但有些网站系统的流程是在前台浏览器客户端对密码进行Hash加密后传输给服务器并与数据库加密值进行对比。如果加密相同,则判定用户提交密码正确。此种流程不是很好,他会泄露密码加密方式,导致安全隐患
参考:
Eastmount大神的文章,网络安全100篇
BurpSuite基础教程第二发:Proxy模块(代理模块)
以上是关于Burpsuite工具的基础用法的主要内容,如果未能解决你的问题,请参考以下文章