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进阶的更多相关文章

  1. Burp Suite新手指南

    Burp Suite想必大家都用过,但是大家未必知道它的所有功能.因此,本文的主要目的就是尽量深入介绍各种功能.BurpSuite有以下这些功能: 截获代理– 让你审查修改浏览器和目标应用间的流量. ...

  2. Burp Suite使用详解一

    本文由阿德马翻译自国外网站,请尊重劳动成果,转载注明出处 Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解 ...

  3. Burp Suite 使用教程(上传突破利器)

    Burp Suite是一个免费的网站攻击工具. 它包括proxy.spider.intruder.repeater四项功能.该程序使用Java写成,需要 JRE 1.4 以上版本 下载该程序的源代码, ...

  4. 初识 Burp Suite

           Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程. 所有的工具都共享一个能处理并显示HTTP 消息, ...

  5. 安卓APP测试之使用Burp Suite实现HTTPS抓包方法

    APP的测试重点小部分在APP本身,大部分还是在网络通信上(单机版除外).所以在安卓APP测试过程中,网络抓包非常重要,一般来说,app开发会采用HTTP协议.Websocket.socket协议,一 ...

  6. burp suite 使用教程详解(外文翻译转)

    Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查.本文将做一个Bu ...

  7. Burp Suite使用

    Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查.本文将做一个Bu ...

  8. Burp Suite安装及详细使用教程-Intruder模块详解

    01 介绍 安装要求: Java 的V1.5 + 安装( 推荐使用最新的JRE ), 可从这里免费 http://java.sun.com/j2se/downloads.html Burp Suite ...

  9. Burp Suite使用介绍

    Burp Suite使用介绍(一)  22人收藏 收藏 2014/05/01 19:54 | 小乐天 | 工具收集 | 占个座先 Getting Started Burp Suite 是用于攻击web ...

  10. Burp Suite详细使用教程

    Burp Suite详细使用教程-Intruder模块详解 最近迷上了burp suite 这个安全工具,百度了关于这个工具的教程还卖900rmb...ohno.本来准备买滴,但是大牛太高傲了,所以没 ...

随机推荐

  1. 10_SpringBoot更加详细

    一. 原理初探 1.1 自动装配 1.1.1 pom.xml spring-boot-dependencies: 核心依赖在父工程中 我们在写入或者引入一些SpringBoot依赖的时候, 不需要指定 ...

  2. 【前端必会】HtmlWebpackPlugin 和 SplitChunksPlugin 是什么?

    背景 了解什么是webpack插件,在来看一下不能不知道的两个插件 HtmlWebpackPlugin 有了这个插件,webpack执行后会自动帮我们在dist目录生成一个html文件,并且添加bun ...

  3. Module Federation 模块联邦 在Vue3中使用Vue2搭建的微服务

    前言: 备注:本文基于对webpack Module Federation有一定了解的情况下 一般情况下使用模块联邦都是会使用相同的版本,如Vue2的组件时在Vue2中使用,但我为什么会在Vue3项目 ...

  4. PAT甲级英语单词整理

    proper 正确 合适 vertex(vertices)顶点 respectively 个别 分别 indices 指标 索引 shipping 运输 incompatible 不相容 oxidiz ...

  5. P7113 [NOIP2020] 排水系统 (拓扑排序)

    (不想打高精,也不想学习其他大佬的神仙写法,打了90分的错解). 本题容易想到用拓扑排序处理,涉及分数的加法,用long long会超时,不过通分时先除后乘卡一下也可以拿90分. 结构体真是个复杂的东 ...

  6. 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架

    转载来源:https://www.cnblogs.com/coderzh/archive/2009/04/12/1434155.html 一.前言 上一篇我们分析了gtest的一些内部实现,总的来说整 ...

  7. JS 学习笔记 (六) 函数式编程

    1.函数闭包 1.1 概述 JavaScript采用词法作用域,函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的. 为了实现这种词法作用域,JavaScript函数对 ...

  8. SpringBoot 自动装配原理

    早期的Spring项目需要添加需要配置繁琐的xml,比如MVC.事务.数据库连接等繁琐的配置.Spring Boot的出现就无需这些繁琐的配置,因为Spring Boot基于约定大于配置的理念,在项目 ...

  9. 23种设计模式之自定义Spring框架(五)

    7,自定义Spring框架 7.1 spring使用回顾 自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟. 数据访问层.定义UserDao ...

  10. 第2-1-4章 SpringBoot整合FastDFS文件存储服务

    目录 5 SpringBoot整合 5.1 操作步骤 5.2 项目依赖 5.3 客户端开发 5.3.1 FastDFS配置 5.3.2 FastDFS配置类 5.3.3 文件工具类 5.3.4 文件上 ...