当前位置:   article > 正文

Web安全攻防渗透测试实战指南之Burp工具使用

burp工具


本文只用作学习研究,请勿非法使用!!!
本文只用作学习研究,请勿非法使用!!!
本文只用作学习研究,请勿非法使用!!!

Burp Suite的安装:

  • Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效的完成对WEB应用程序的渗透测试和攻击
  • Burp Suite由JAVA语言编写,基于JAVA本身的跨平台性,使得这款软件学习和使用起来更方便。Burp需要手工配置一些参数,触发一些自动化流程,然后才会开始工作
  • Burp Suite可执行程序是JAVA文件类型的jar文件,免费版可以从官网下载
  • 免费版的Burp Suite会有许多限制,无法使用很多高级工具,如果想使用更多的高级功能,需要付费购买专业版
  • 专业版与免费版的主要区别:
    • Burp Scanner
    • 工作空间的保存和恢复
    • 扩展工具,如Target Analyzer、Content Discovery和Task Scheduler
  • Burp Suite是用JAVA语言开发的,运行时依赖JRE,需要安装JAVA环境才可以运行

JAVA安装:

下载:https://cloud.189.cn/t/eAnUB3eyEZby (访问码:hvd2)
下载完之后双击进行安装:
image.png
image.png
image.png
image.png
image.png
image.png
之后配置环境变量:
image.png
image.png
image.png
image.png
箭头放到最前面,找到C:\Program Files\Common Files\Oracle\Java\javapath并删除
image.png
之后把JAVA的安装路径放到最前面:
image.png
image.png
image.png
之后按住win+R打开cmd窗口:
image.png
之后输入命令查看版本信息:java --version
image.png

Burp安装:

2022.7安装包:https://cloud.189.cn/t/E3QBJv6R7vQ3 (访问码:0vkr)
下载之后解压:
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

Burp Suite入门:

Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。Burp Suite主要拦截HTTP和HTTPS协议的流量,通过拦截,Burp Suite以中间人的方式对客户端的请求数据、服务端的返回信息做各种处理,以达到安全测试的目的
在日常工作中,最常用的web客户端就是web浏览器,可以通过设置代理信息,拦截web浏览器的流量,并对经过Burp Suite代理的流量数据进行处理。Burp Suite运行后,Burp Proxy默认本地代理端口为8080
image.png
浏览器设置代理(火狐):
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

Proxy:

  • Burp Proxy是利用Burp开展测试流程的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端与服务端之间的数据
  • Burp Proxy的拦截功能主要由Intercept选项卡中的Forward、Drop、Interception is on/off和Action构成
    • Foreard:表示将拦截的数据包或修改后的数据包发送至服务器端
    • Drop:表示丢弃当前拦截的数据包
    • Interception is on:表示开启拦截功能,单击后变为Interception is off,表示关闭拦截功能
    • 单击Action按钮:可以将数据包进一步发送到Spider、Scanner、Repeater、Intruder等功能组件做进一步的测试,同时也包含改变数据包请求方式及其body的编码等功能

image.png
image.png

  • 抓包流程:浏览器输入内容–>流量经过Burp–>点击Forward/Drop
    • 点击Forward:数据继续传输
    • Drop:本次通过的数据将丢失,不再继续处理
  • 当Burp Suite拦截的客户端和服务器交互之后,可以在Burp Suite的消息分析选项中查看这次请求的实体内容、消息头、请求参数等信息。Burp有四种消息类型显示数据包:
    • Raw:主要显示Web请求的raw格式,以纯文本的形式显示数据包,包含请求地址、HTTP协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等,可以通过手动修改这些信息,对服务器端进行渗透测试

image.png

  • Params:主要显示客户端请求的参数信息,包括GET或者POST请求的参数、cookie参数。可以通过修改这些请求参数完成对服务器端的渗透测试(此版本没有)
  • Headers:显示的是数据包中的头信息,以名称、值的形式显示数据包(此版本没有)
  • Hex:对应的是Raw中信息的二进制内容,可以通过Hex编辑器对请求的内容进行修改,在进行00截断的时候非常好用

image.png

Spider(此版本为Target):

  • Spider的蜘蛛爬行功能可以帮助我们了解系统的结构,其中Spider爬取到的内容将在Target中展示

左侧为一个主机和主目录树,选择具体某一个分支即可查看对应的请求与响应
image.png

Decoder:

  • Decode的功能很简单,就是Burp自带的编码解码以及散列转换的工具,能对原始数据进行各种编码格式和散列的转换
  • 输入域:显示的是需要编码/解码的原始数据,可直接填写或粘贴,也可以通过Burp的"Send to Decoder"选项发送过来

image.png
image.png

  • 输出域:显示的是对输入域中原始数据进行编码/解码的结果

image.png

  • 编码选项由三个部分构成:
    • Decode as(解码选项):
    • Encode as(编码选项):
      • URL
      • HTML
      • Base64
      • ASCII
      • 十六进制
      • 八进制
      • 二进制
      • GZIP
    • Hash(散列):只列举一部分
      • SHA
      • SHA-224
      • SHA-256
      • SHA-384
      • SHA-512
      • MD2
      • MD5
    • 对同一数据,可以在Decode界面进行多次编码、解码的转换

Burp Suite进阶:

Scanner:

  • 主要用于自动检测web系统的各种漏洞
    • 1.确认Burp Suite正常启动并完成浏览器代理的配置

image.png
image.png

  • 2.进入Burp Proxy,关闭代理拦截功能,快速浏览需要扫描的域或URL模块,此时在默认情况下,Burp Scanner会扫描通过代理服务的请求,并对请求的消息进行分析来辨别是否存在系统漏洞

image.png
image.png

  • 3.打开Burp Target时,也会在站点地图中显示请求的URL树

image.png

  • 4.网站测试:
    • 选择Burp Target的站点地图选项下的链接,在其链接URL右击选择"Actively scan this host",此时会弹出过滤设置,保持默认选项即可扫描整个域

image.png
image.png

  - 也可以在Proxy下的HTTP history中,选择某个节点上的链接URL并右击选择"Do an active scam"进行扫描
  • 1

image.png
image.png

  - 此时,Burp Scanner开始扫描,在Scanner界面下双击即可看到扫描结果
  • 1

image.png

  - 可以在扫描结果中选中需要进行分析的部分,然后将其发送到repeater模块中进行模拟提交分析和验证
  • 1

image.png
image.png

  • 5.漏洞报告:
    • 当scanner扫描完成后,可以右击Burp Target站点地图选项下的链接,依次选择"issues"–>"Report issues"选项,然后导出漏洞报告

image.png

  - 然后将漏洞报告以HTML文件格式保存
  • 1

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

Burp的扫描方式:

主动扫描(Active Scanning):
  • Burp会向应用发送新的请求并通过payload验证漏洞。这种模式下的操作会产生大量的请求和应答数据,直接影响服务端的性能,通常用于非生产环境
  • 适用于两类漏洞:
    • 客户端的漏洞:
      • XSS、HTTP头注入、操作重定向
      • Burp在检测时会提交input域,然后根据应答的数据进行解析。在检测过程中,Burp会对基础的请求信息进行修改,即根据漏洞的特征对参数进行修改,模拟人的行为,以达到检测漏洞的目的
    • 服务端的漏洞:
      • SQL注入、命令行注入、文件遍历
      • 以SQL注入为例,服务端有可能返回数据库错误提示信息,也有可能什么都不反馈。Burp在检测过程中会采用各个技术验证漏洞是否存在,例如诱导时间延迟、强制修改Boolean值、与模糊测试的结果进行比较,以提高漏洞扫描报告的准确性
被动扫描(Passive Scanning):
  • Burp不会重新发送新的请求,只是对已经存在的请求和应答进行分析,对服务端的检测来说,这比较安全,通常适用于生产环境的检测。
  • 以下漏洞在被动模式中容易被检测出来:
    • 提交的密码为未加密的明文
    • 不安全的cookie的属性,例如缺少HttpOnly和安全标志
    • cookie的范围缺失
    • 跨域脚本包含和站点引用泄露
    • 表单值自动填充,尤其是密码
    • SSL保护的内容缓存
    • 目录列表
    • 提交密码后应答延迟
    • session令牌的不安全传输
    • 敏感信息泄露,例如内部IP地址、电子邮件地址、堆栈跟踪等信息泄露
    • 不安全的ViewState的配置
    • 错误或不规范的Content-Type指令
  • 被动扫描模式相比主动模式有很多不足,但具备主动模式不具备的优点。除了对服务端的检测比较安全,当某种业务场景的测试每次都会破坏业务场景的某方面功能时,可以使用被动扫描模式验证是否存在漏洞,以减少测试的风险

Intruder:

  • Intruder是一个定制的高度可配置的工具,可以对web应用程序进行自动化攻击,如通过标识符枚举用户名、ID和账户号码,模糊测试,SQL注入,跨站,目录遍历等
  • 工作原理:Intruder在原始请求数据的基础上,通过修改各种请求参数获取不同的请求应答。在每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的比对分析获得需要的特征数据
  • 应用场景:
    • 标识符枚举:
      • WEB应用程序经常使用标识符引用用户、账户、资产等数据信息。例如:用户名、文件ID和账户号码
    • 提取有用的数据:
      • 在某些场景下,不是简单的识别有效标识符,而是通过简单标识符提取其他数据。例如:通过用户的个人空间ID获取所有用户在其个人空间的名字和年龄
    • 模糊测试:
      • 很多输入型的漏洞(如SQL注入、跨站脚本攻击和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。受限于应用程序的大小和复杂性,手动执行这个测试是一个耗时且繁琐的过程,因此可以设置payload,通过Burp Intruder自动化的对web应用程序进行模糊测试
  • Intruder模块爆破成功的前提是你有一个好的字典:

image.png
image.png
image.png
image.png
image.png
image.png

  • Attack Type:
    • sinper:
      • 使用单一的payload组
      • 它会对每个位置设置payload
      • 这种攻击类型适用于对常见漏洞中的请求参数单独进行Fuzzing测试的情景
      • 请求总数应该是position数量和payload数量的乘积
    • Battering ram:
      • 使用单一的payload组
      • 它会重复payload并一次性把所有相同的payload放入指定的位置中
      • 这种攻击适用于需要在请求中把相同的输入放到多个位置的情景
      • 请求总数是payload组中payload的总数
    • Pichfork:
      • 使用多个payload组
      • 攻击会同步迭代所有的payload组,把payload放入每个定义的位置中
      • 这种攻击非常适合在不同位置中需要插入不同但相似输入的情况
      • 请求的数量应该是最小的payload组中的payload数量
    • Cluster bomb:
      • 使用多个payload组
      • 每个定义的位置中有不同的payload组
      • 攻击会迭代每个payload组,每种payload组合都会被测试一遍
      • 这种攻击适用于在位置中需要不同且不相关或者未知输入攻击的情景
      • 攻击请求的总数是各payload组中payload数量的乘积
  • 之后选中字典:

image.png
image.png
image.png
image.png

  • 可对status或Length的返回值进行排序

image.png
image.png

Repeater:

  • 可以手动修改、补发个别HTTP请求,并分析它们响应
  • 最大的用途就是能和其他Burp Suite工具结合起来使用
  • 可以将目标站点地图、Burp Proxy浏览记录、Burp Intruder的攻击结果,发送到Repeater上,并手动调整这个请求来对漏洞的探测或攻击进行微调

image.png
image.png
image.png
image.png

  • Repeater的分析选项:
    • Raw:
      • 显示纯文本格式的消息。在文本面板的底部有一个搜索和加亮的功能,可以用来快速定位需要寻找的字符串,如出错消息。利用搜索栏左边的弹出项,能控制状况的灵敏度,以及是否使用简单文件或十六进制进行搜索
    • Params(已经取消):
      • 对于包含参数(URL查询字符串、cookie头或者消息体)的请求,Params选项会把这些参数显示为名字/值得格式,这样就可以简单得对他们进行查看和修改了
    • Headers(已经取消):
      • 以名字/值得格式显示HTTP的消息头,并且以原始格式显示消息体
    • Hex:
      • 允许直接编辑由原始二进制数据组成的消息
    • Pretty:
      • 原始页面,可以发现页面中无法发现的内容
    • Rander:
      • 就是用浏览器打开的那个界面
  • Repeater的作用:
    • 请求与响应的消息验证分析
      • 修改请求参数、验证输入的漏洞
      • 修改请求参数、验证逻辑越权
      • 从拦截历史记录中,捕获特征性的请求消息进行请求重放
  • Repeater操作界面:
    • 左边的Request为请求消息区
    • 右边的Response为应答消息区
    • 请求消息区显示的是客户端发送的请求消息的详细信息
    • 应答消息区显示的是请求消息区的请求消息

image.png
image.png
image.png
image.png

Comparer:

  • 主要提供一个可视化的差异比对功能,来对比分析两次数据之间的区别
  • 用到的场合:
    • 枚举用户名的过程中,对比分析登录成功和失败时,服务端反馈结果的区别
    • 使用Intruder进行攻击时,对于不同的服务端响应,可以很快分析出两次响应的区别在哪里
    • 进行SQL注入的盲注测试时,比较两次响应消息的差异,判断响应结果与注入条件的关联关系
  • 步骤:
    • 1.数据加载
      • 常用方式:
        • 从其他工具通过上下文菜单转发过来
        • 直接粘贴
        • 从文件中加载

image.png
image.png
image.png
image.png
image.png

  • 2.差异分析:
    • 加载完毕后,如果选择两次不同的请求或应答消息,则下发的比较按钮将被激活,此时可以选择文本比较或字节比较

image.png
image.png
image.png

Sequencer:

  • 用于分析数据样本随机性质量
  • 可测试应用程序的会话令牌(Session token)、密码重置令牌是否可预测等场景,通过Sequence的数据样本分析,能很好的降低这些关键数据被伪造的风险
  • 模块:
    • Live Capture(信息截取)
    • Manual load(手动加载)
    • Analysis Options(选项分析)

image.png
image.png
image.png
image.png
image.png
image.png
视情况而定,具体情况具体分析

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号