Burp Suite进阶
1、Scanner
Burp Scanner主要用于自动检测Web系统的各种漏洞。
首先,确认Burp Suite正常启动并完成浏览器代理的配置。然后进入Burp Proxy,关闭拦截代理功能,快速浏览需要扫描的域或URL模块,此时在默认情况下,Burp Scanner会扫描通过代理服务器的请求,并对请求的消息进行分析来辨别是否存在系统漏洞。而且当我们打开Burp Target时,也会在站点地图中显示请求的URL树。
随便找一个网站进行测试,选择Burp Target的站点地图选项下的链接,在其链接URL上右击选择”Actively scan this host“,此时会弹出过滤设置,保持默认选项即可扫描整个域。
也可以在Proxy下的HTTP history中,选择某个节点上的链接URL并右击选择Do an active scan进行扫描,此时Burp Scanner开始扫描。
我们可以在扫描结果中选中需要进行分析的部分,将其发送到repeater模块中,进行模拟提交分析和验证。
当scanner扫描完成后,可以右击Burp Target站点地图选项下的链接,依次选择”issues“—>”Report issues“选项,然后导出漏洞报告。
Burp Scanner有主动扫描和被动扫描。
(1)主动扫描
当使用主动扫描模式时,Burp会向应用发送新的请求并通过Payload验证漏洞。这种模式下的操作会产生大量的请求和应答数据,直接影响服务端的性能,通常用于非生产环境。主动扫描适用于以下这两类漏洞:
- 客户端的漏洞,如XXS、HTTP头注入、操作重定向。
- 服务端的漏洞,如SQL注入、命令行注入、文件遍历。
对第一类漏洞,Burp在检测时会提交input域,然后根据应答的数据进行解析。在检测过程中,Burp会对基础的请求信息进行修改,即根据漏洞的特征对参数进行修改,模拟人的行为,以达到检测漏洞的目的。对第二类漏洞,以SQL注入为例,服务端有可能返回数据库错误提示信息,也有可能什么都不反馈。Burp在检测过程中会采用各个技术验证漏洞是否存在,例如诱导时间延迟、强制修改Boolean值、与模糊测试的结果进行比较,以提高漏洞扫描报告的准确性。
(2)被动扫描
当使用被动扫描模式时,Burp不会重新发送新的请求,只是对已经存在请求和应答进行分析,对服务端的检测来说,这比较安全,通常适用于生产环境的检测。一般来说,下列漏洞在被动模式中容易被检测出来
- 提交的密码为未加密的明文。
- 不安全的cookie的属性,例如缺少HTTPOnly和安全标志。
- cookie的范围缺失。
- 跨域脚本包含和站点引用泄露。
- 表单自动填充,尤其时密码。
- SSL保护的内容缓存。
- 目录列表。
- 提交密码后应答延迟。
- session令牌的不安全传输。
- 敏感信息泄露,例如内部IP地址、电子邮件地址、堆栈跟踪等信息泄露。
- 不安全的viewstate的配置。
- 错误或不规范的content-type指令。
虽然被动扫描模式相比主动模式有很多不足,但同时也具有主动模式不具备的优点。除了对服务端的检测比较安全,当某种业务场景的测试每次都会破坏业务场景的某方面功能时,可以使用被动扫描模式验证是否存在漏洞,以减少测试的风险。
2、Intruder
Intruder是一个定制的高度的可配置的工具,可以对web应用程序进行自动化攻击,如通过标识符枚举用户名、ID和账户号码、模糊测试、SQL注入、跨站、目录遍历等。
它的工作原理是Intruder在原始数据的基础上,通过修改各种请求参数获取不同的请求应答。在每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的比对分析获得需要的特征数据。Burp Intruder通常被应用于以下场景。
- 标识符枚举。web应用程序经常使用标识符引用用户、账户、资产等数据信息。例如,用户名、文件ID和账户号码。
- 提取有用的的数据。在某些场景下,不是简单地识别有效标识符,而是通过简单标识符提取其他数据。例如,通过用户的个人空间ID获取所有用户在其个人空间的名字和年龄。
- 模糊测试。很多输入型的漏洞(如SQL注入、跨站点脚本和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。受限于应用程序的大小和复杂性,手动执行这个测试是一个耗时且繁琐的过程,因此可以设施Payload,通过Burp Intruder自动化地对web应用程序进行模糊测试。
利用Intruder爆破无验证码和次数限制的网站的方法。前提是你得有比较好的字典。注意,Burp suite的文件不要放在中文的路径下。
首先将数据包发送到Intrude模块中
Burp会自动对某些参数进行标记,这里先点击clear$按钮清除所有标记
然后选择要进行暴力破解的参数值,将pass参数选中,单击add$按钮,只对一个参数进暴力破解,所以攻击类型选择sniper即可,这里需要注意的是,如果要同时对用户名和密码进行破解,可以同时选中user和pass参数,并且选择交叉式cluster bomb模式进行破解。
- Sniper模式使用单一的payload组。它会针对每个位置设置payload。这种攻击类型适用于对常见漏洞中的请求参数单独进行Fuzzing测试的情景。攻击中的请求总数应该是position数量和payload数量的乘积。
- Battering ram模式使用单一的payload组。它会重复payload并一次性把所有相同的payload放入指定的位置中。这种攻击适用于需要在请求中把相同的输入放到多个位置的情景。请求总数是payload组中payload的总数。
- Pitchfork模式使用多个payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。这种攻击类型非常适合在不同位置中需要插入不同但相似输入的情况。请求的数量应该是最小的payload组中的payload数量。
- Cluster bomb模式会使用多个payload组,每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。这种攻击适用于在位置中需要不同且不相关或者未知输入攻击的情景。攻击请求的数量是各payload组中payload数量的乘积。
选中password参数
选择字典
开始爆破并等待爆破结束。
查看status或length的返回值进行排序,查看是否有不同之处。如果有,查看返回包是否显示为登陆成功,如果返回的数据包中有明显的登陆成功的信息,则说明已经破解成功。
3、Repeater
Burp Repeater是一个手动修改、补发个别HTTP请求,并分析它们的响应的工具。它最大的用途就是能和其它Burp Suite工具结合起来使用。可以将目标站点地图、Burp Proxy浏览记录、Burp Intruder的攻击结果,发送到Repeater上,并手动调整这个请求来对漏洞的探测或攻击进行微调。
Repeater分析选项有4种:Raw、Parans、Headers和Hex。
- Raw:显示纯文本格式的消息。在文本面板的底部有一个搜索和加亮的功能,可以用来快速定位需要寻找的字符串,如出错消息。利用搜索栏左边的弹出项,能控制状况的灵敏度,以及是否使用简单文本或十六进制进行搜索。
- Params:对于包含参数(URL查询字符串、cookie头或者消息体)的请求,Params选项会把这些参数显示为名字/值的格式,这样就可以简单地对它们进行查看和修改了。
- Headers:将以名字/值的格式显示HTTP的消息头,并且以原始格式显示消息体。
- Hex:允许直接编辑由原始二进制数据组成的消息。
在渗透测试过程中,我们经常使用Repeater进行请求与响应的消息验证分析。
在Repeater的操作界面中,左边的Request为请求消息区,右边的Response为应答消息区,请求消息区显示的是客户端发送的请求消息的详细信息。当我们编辑完请求消息后,单击“Send”按钮即可发送请求给服务端。
应答消息区显示的是对对应的请求消息单击“Send”按钮后,服务端的反馈信息。通过修改请求信息的参数来比对分析每次应答消息之间的差异,能更好地帮助我们分析系统可能存在的漏洞。
4、Comparer
Burp Comparer在Burp suite中主要提供一个可视化的差异对比功能,来对比分析两次数据之间的区别,使用到的场合有:
- 枚举用户名的过程中,对比分析登陆成功和失败时,服务端反馈结果的区别。
- 使用Intruder进行攻击时,对于不同的服务端响应,可以很快分析出两次响应的区别在哪里。
- 进行SQL注入的盲注测试时,比较两次响应消息的差异,判断响应结果与注入条件的关联关系。
使用Comparer时有两个步骤,先是数据加载,然后是差异分析。
Comparer数据加载的常用方式如下所示。
- 从其它Burp工具通过对上下文菜单转发过来。
- 直接粘贴。
- 从文件里加载。
加载完毕后,如果选择两次不同的请求或应答消息,则下方的比较按钮将被激活,此时可以选择文本或字节比较。
5、Sequencer
Burp Sequencer是一种用于分析数据样本随机性质量的工具。可以用它测试应用程序的会话令牌(session token)、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。
Burp Sequencer主要由信息截取(Live Capture)、手动加载(Manual Load)和选项分析(Analysis Options)三个模块组成。
在截取信息后,单击Load按钮加载信息,然后单击“Analyze now”按钮进行分析。
Burp Suite进阶的更多相关文章
- Burp Suite新手指南
Burp Suite想必大家都用过,但是大家未必知道它的所有功能.因此,本文的主要目的就是尽量深入介绍各种功能.BurpSuite有以下这些功能: 截获代理– 让你审查修改浏览器和目标应用间的流量. ...
- Burp Suite使用详解一
本文由阿德马翻译自国外网站,请尊重劳动成果,转载注明出处 Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解 ...
- Burp Suite 使用教程(上传突破利器)
Burp Suite是一个免费的网站攻击工具. 它包括proxy.spider.intruder.repeater四项功能.该程序使用Java写成,需要 JRE 1.4 以上版本 下载该程序的源代码, ...
- 初识 Burp Suite
Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程. 所有的工具都共享一个能处理并显示HTTP 消息, ...
- 安卓APP测试之使用Burp Suite实现HTTPS抓包方法
APP的测试重点小部分在APP本身,大部分还是在网络通信上(单机版除外).所以在安卓APP测试过程中,网络抓包非常重要,一般来说,app开发会采用HTTP协议.Websocket.socket协议,一 ...
- burp suite 使用教程详解(外文翻译转)
Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查.本文将做一个Bu ...
- Burp Suite使用
Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查.本文将做一个Bu ...
- Burp Suite安装及详细使用教程-Intruder模块详解
01 介绍 安装要求: Java 的V1.5 + 安装( 推荐使用最新的JRE ), 可从这里免费 http://java.sun.com/j2se/downloads.html Burp Suite ...
- Burp Suite使用介绍
Burp Suite使用介绍(一) 22人收藏 收藏 2014/05/01 19:54 | 小乐天 | 工具收集 | 占个座先 Getting Started Burp Suite 是用于攻击web ...
- Burp Suite详细使用教程
Burp Suite详细使用教程-Intruder模块详解 最近迷上了burp suite 这个安全工具,百度了关于这个工具的教程还卖900rmb...ohno.本来准备买滴,但是大牛太高傲了,所以没 ...
随机推荐
- JavaScript 的闭包(closure)
以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/ 对于闭包的理解,其实可以归纳为,在创建函数时,同时创建了一 ...
- .NET 反向代理 YARP 自定义配置提供程序(Configuration Providers)
介绍 基本 Yarp 示例显示从 appsettings.json 加载的代理配置.相反,代理配置可以从您选择的源以编程方式加载.您可以通过提供几个实现 IProxyConfigProvider 和 ...
- loam详细代码解析与公式推导
loam详细代码解析与公式推导(基础理论知识) 一.基础坐标变换 loam中欧拉角解算都采用R P Y 的解算方式,即先左乘R, 再左乘P, 最后左乘Y,用矩阵表示为: R = Ry * Rp * R ...
- 分布式存储系统之Ceph集群访问接口启用
前文我们使用ceph-deploy工具简单拉起了ceph底层存储集群RADOS,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16724473.html:今天我 ...
- 华为交换机VLAN常用命令
划分vlan vlan 10 划分Vlan10 vlan batch 30 40 同时创建vlan30和40 dispaly vlan 查看vlan信息 int e0/0/1 进入某一个接口 port ...
- 死锁与Lock锁
死锁1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 2.说明: 1)出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞 ...
- 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2021)-MSTE: 基于多向语义关系的有效KGE用于多药副作用预测
MSTE: 基于多向语义关系的有效KGE用于多药副作用预测 论文标题: Effective knowledge graph embeddings based on multidirectional s ...
- 2.-url和视图函数
一.URL-结构 1.定义:统一资源定位符 Uniform Resource Locator 2.作用:用来表示互联网上某个资源地址 3.URL的一般语法格式为(注:[]代码其中的内容可以省略): 格 ...
- 前端JS获取路由地址里的参数QueryString取值
参数的获取 声明一个函数 //参数name是路由参数 engNo function getQueryString(name) { var reg = new RegExp("(^|& ...
- 二十三、Pod的service介绍
Pod 的 Service 介绍 一.Service 介绍 Kubernetes Service 定义了这样一种抽象: 一个 Pod 的逻辑分组,一种可以访问它们的策略,通常称为微服务. 这一组 Po ...