• BurpSuite 功能概览


    简介

    写作思想:相比较具体介绍某个功能的用法。会更加侧重于介绍 Burp 提供哪些功能。这样好处是在比较复杂的测试场景,如果Burp 刚好提供对应的功能,就不用花费精力造轮子了。

    而需要掌握具体操作方法,只需要查阅Burp 的官方手册。Burp 查阅手册十分方便,只需要点击相应功能旁边的 image-20211010214802412即可。

    本文所使用的 BurpSuite 版本为 v2021.8.2 Professional 。

    ⭐ 代表比较常用、重要的子功能并非官方统计,作者的个人总结,仅供参考

    安装启动

    可以在此根据需要,下载相应版本的BurpSuite https://portswigger.net/burp/releases。

    image-20210910090346299

    此处决定将要启动的工程的存储类型。是打开一个临时工程、还是在磁盘上创建一个新工程、或者打开一个曾经保存的工程。

    在渗透测试项目中,建议在磁盘创建一个新工程,因为这样在复测的时候可以很方便恢复到初测的场景。但如果是用于练习的话,使用临时工程就行。

    image-20210910090738176

    此处主要决定 Burp 的设置选项,是采取默认选项,还是使用工程中自带的选项,还是额外加载其它选项文件。

    此处建议将 Burp 个性化设置之后,将项目选项进行保存,这样每次启动时会恢复个性化设置。

    image-20210910091014389

    各模块及功能的详细介绍

    Dashboard

    控制和监视自动事件。

    image-20210910085831418

    左上角是当前项目的自动任务,Intruder 任务也在此显示。

    左下角是Burp 运行的一些事件记录,通常主要查看网络联通问题。

    右侧是显示由 Burp 发现的一些问题及对应的详细问题。

    New scan⭐

    进行主动 爬取爬取并审计

    Scan details

    image-20210909203247729

    扫描的类型,要扫描的目标 url 等。

    Scan configuration-Crawl

    image-20211008102304682

    image-20210910091324651

    • Crawl Optimization:决定爬取的深度,以及爬取的策略。

    • Crawl Limits: 决定爬取的终止条件。

    • Login Functions: 决定是否触发登录、注册数据功能。

    image-20210910091817605

    • Handling Application Errors During Crawl:在爬取时遇到错误时,满足什么条件会暂停任务。

    • Miscellaneous:一些爬取过程中的调整,各选项通俗易懂,默认选项足以应付绝大多数场景。值得注意的是,建议 Use embedded browser for Crawl and Audit 设置为 yes,即使用内置浏览器作为爬取引擎,可以处理js、加载额外资源等,从而爬取到更多内容。

    Scan configuration-Audit

    image-20210910093451206

    • Audit Optimization:审计的优化,决定速度,精确性。四个选项分别决定:
      • 基于审计的值,是否跳过不太可能的漏洞检查。例如一个数字值就不会尝试目录遍历漏洞。
      • 将经常出现的问题进行合并。
      • 自动维持 session。只在当选择 Crawl and Audit 模式才有作用。
      • 在必要时遵循重定向。可以在Project options.HTTP.Redirections 设置具体的重定向条件。
    • Issues Reported:决定会审计哪些漏洞。

    image-20210910094721741

    • Handling Application Errors During Audit:决定当遇到错误时(连接错误、超时)等,何时跳过该检查点。并且决定何时暂停该任务。
    • Insertion Point Types:决定哪些位置的参数会被检查。

    image-20210910100807934

    • Modifying Parameter Locations:是否将参数挪换位置。常用于绕 waf。
    • Ignored Insertion Points:决定哪些参数不会被测试。

    image-20210910101145569

    • Frequently Occurring Insertion Points:决定哪些参数位置在大量请求未检测到问题的时候,将执行轻量级的审计。
    • Misc Insertion Point Options:决定在不同的数据封装层进行审计测试。例如 json 数据被base64 编码,则会在两个数据层次都进行测试。
    • JavaScript Analysis:决定如何对 JavaScript 采取的分析技术。
    Application login

    image-20211008102206687

    自定义的登录功能。

    若自定义登录序列,则需要通过 burp 插件录取登录序列。

    Resource pool

    image-20211008102219548

    控制发送请求的线程数以及请求之间的间隔等。

    New live task⭐⭐

    进行被动 爬取审计

    Scan details

    image-20210909203343296

    被动扫描的类型,工具范围等。新建的 burp 工程会默认启动这两个任务。

    Scan configuration-Crawl

    image-20210910102157775

    • Live passive crawl:进行被动爬取,建议选择所有。
    Scan configuration-Audit

    和New scan 的 Audit 配置一样。

    Resource pool

    控制发送请求的线程数以及请求之间的间隔。

    Target

    定义目标的范围,以便其它工具进行过滤。绘制网站地图。

    Site map⭐

    显示网站地图。

    image-20210910103450975

    右键功能

    主动scan、被动 scan。

    Engagement tools:按照顺序,依次是搜索关键字、注释、脚本、引用,分析目标、扫文件目录、设置相关定时任务、模拟手工测试。

    Scope⭐

    image-20210909204026894

    定义目标范围,以便其它工具根据此范围进行数据包过滤。

    Issue definitions

    image-20210909204056034

    显示 scanner 工具所能识别到的所有问题的详情。

    Proxy

    监听、拦截请求。记录数据包。

    Intercept⭐

    image-20211010112132651

    拦截数据包。

    右键功能

    Request in browser:也就是将此请求在浏览器中重放。以该请求的cookie,或者以当前浏览器的cookie。

    Engagement tools:分别是寻找引用这个 url 的 urls,扫描目录,设置定时任务,生成 csrf poc。

    Don`t intercept requests:不拦截该相关请求。

    Do intercept:拦截该请求的响应。

    HTTP history⭐

    image-20210910124651422

    查看历史的数据包记录。

    WebSockets history

    image-20210910124751194

    查看历史 websockets 消息记录。

    Options⭐

    对 Intercept 、Proxy 功能进行定制。

    image-20210910124925965

    • Proxy Lsteners

      监听的端口,管理证书。

    image-20210910125053412

    • Intercept Client Requests / Intercept Server Responses / Intercept WebSockets Messages

      拦截客户端的请求。拦截服务端的响应。拦截 WebSockets 消息

    image-20210910125159962

    • Response Modification

      对响应内容做一定程度的更改。可以显示隐藏的表单,移除表单验证等等。

    • Match and Replace

      对通过代理的请求、响应内容进行一些替换。

    image-20210910125931756

    • TLS pass through

      某些app 采取证书pinning,可以在此添加绕过拦截的域名,burp 将无法抓取到此类流量。

    • Miscellaneous

      设置proxy 的一些行为。默认设置下注意4、5、6、7 选项,都会对经过 proxy 的请求进行修改。如果发现经过burp 的请求和正常网页中请求的页面不同,那么很有可能是受到这几个选项的影响。

      选项 Suppress Burp error 决定当在 Intercept 中 drop 请求时,是否在页面中显示burp 的报错信息。

    Repeater

    重放数据包。

    image-20210910130804551

    image-20210910130828071

    Intruder

    数据包爆破

    Target

    image-20211008103600669

    Positions⭐

    image-20211008103833268

    • Sniper

      狙击手,一次只能替换一处标记。

    • Battering ram

      攻城锤,和 Sniper 很相似,不过一次可以替换多个标记。同一个值要出现在多个地方。

    • Pitchfork

      草叉,一对一。例如获取用户信息处需要同时输入用户名以及对应的手机号。

    • Cluster bomb

      集束炸弹,多对多。例如登录处同时爆破用户名以及密码。

    Payloads⭐⭐

    image-20211008155949416

    • Payload Sets

      用来控制payload 的形式。

      • Simple list:payload 列表。
      • Runtime file:和 simple list 类似,但如果payload 太多例如 8G,不好一次加载到内存中,所以可以运行时再读取每行。
      • Custom iterator:和 Cluster bomb 功能类似。a/b.c 目录名/文件名.后缀名 ,最终生成的payload 集合是三个集合的笛卡尔积。
      • Character substitution:将simple list 的中的字符串中的单个字符进行替换,生成相应的payload 集合。值得注意的是,如果将 e 替换为 3,那么 peer 将会生成三个payload peer/p3er/p33r
      • Case modification:更改 payload 大小写,生成多个 payload 。
      • Recursive grep:从上一个请求的响应中获取payload。在 Intruder.Options.Grep-Extract 中定义响应中需要被下一个请求使用的字符串。若使用此payload 形式,则必须将线程数量调整为1。
      • Illegal Unicode:unicode 替换以绕过某些关键字过滤。
      • Character blocks:重复一定次数指定的字符串。
      • Numbers:数字
      • Dates:日期
      • Brute forcer:从指定的字符集合中生成指定长度的字符串集合。
      • Null payloads:payload 为空,重复指定次数。
      • Character frobber:将字符串的每个字符逐个增加1位,例如 abc 会生成 bbc/acc/abd 三个。比较少用。
      • Bit flipper:逐个bit 翻转。比较少用。
      • Username generator:跟据输入的用户名,生成可能的用户名集合。
      • ECB block shuffler:ECB 块混洗。ECB 是一种分组加密方式。更改分组顺序可能会引起目标程序逻辑异常。
      • Extension-generated:由插件生成 payload。
      • Copy other payload:从其它的payload 拷贝。其用处并不只是单纯的拷贝,而是可以进一步通过 Payload Processing 进行处理。例如一个参数是另一个参数的 hash。

    image-20211010144321716

    • Payload processing

      对payload 进行更改。支持以下几种方式。

      添加前后缀、替换、截取、更改大小写、编解码、hash、由扩展处理等等。

    • Payload Encoding

      对指定的字符串进行url 编码。

    Resource Pool

    工具内通用的资源池。通俗易懂

    image-20211010144405598

    Options⭐

    一些控制选项。

    image-20211010151515550

    • Save Options

      决定是否将这个 Intruder 保存到工程文件中。

    • Attack request headers

      更新请求headers。

    • Error handling

      决定 Intruder 在遇到错误如何处理。

    • Attack results options

      保存请求、响应。

      是否发起未进行修改的请求。

      是否使用 dos 攻击模式。指的是发送完一个请求后就关闭本地的 tcp 链接。不管是否接收到响应。

      表示是否保存 payloads,如果测试的漏洞会反射payload 到响应中,例如 xss。则要在 Options.Grep - payloads 标记响应时,必须要知道 payload。

    image-20211010154247207

    • Grep - Match

      用来标记响应,在响应中搜素某个关键字。

    • Grep - Extract

      用来标记响应中的关键字,以便 Recursive grep 形式的 payload 使用。

    • Grep - Payloads

      用来标记响应,在响应中搜索 payload。

    image-20211010154539564

    • Redirections

      决定是否跳转。

    Sequencer

    对数据包中特定参数进行数学统计分析。以检验其随机性强弱。

    image-20211010155810509

    Decoder

    对数据进行编码或解码。覆盖常见的编解码、hash 方式。

    image-20210910131000679

    Comparer

    对比两个 HTTP 数据包。按照字节、byte 对比两个数据包。

    image-20210910131037355

    image-20210910131108622

    image-20210910131134987

    Logger

    记录所有工具产生的流量。

    image-20210910131159575

    Extender

    burp 插件商店。管理插件。API 文档。

    Extensions

    管理插件。

    image-20211010160744512

    BApp Store⭐

    插件商店。

    image-20211010164127816

    APIS

    burp 的 API 文档。

    image-20211010164233693

    Options

    插件自启动,以及更新。语言环境。

    image-20211010164248851

    Project options

    设置该项目文件的选项。

    Connections⭐

    连接相关的设置。

    image-20211010170031580

    • Platform Authentication

      HTTP 认证凭证,burp 将会使用这些凭证处理服务器 401 需要认证的响应。

    • Upstream Proxy Servers

      http 代理

    • SOCKS Proxy

      socks5 代理

    • Timeouts

      决定四种情况下触发 timeout 的阈值。

    • Hostname Resolution

      自定义 DNS 解析。

    • Out-of-Scope Requests

      是否丢弃不在范围内的请求。这个范围在 Target.Scope 中定义。

    HTTP

    关于HTTP 协议的一些设置。

    image-20211010170820478

    • Redirections

      决定处理哪些重定向。

    • Streaming responses

      指定特定的流式响应url。因为流式响应和普通的响应不同。burp 采取的是存储转发的模型,会将所有流数据接收完毕后才给客户端,而正常逻辑是每到一个数据就传给客户端。

    • Status 100 responses

      决定如何处理 100 响应状态码?是原封不动返回 100 状态码,还是继续请求,返回其响应的状态码。

    • HTTP/2

      是否尽可能使用 HTTP/2

    TLS

    证书相关配置。

    image-20211010172726620

    • TLS Negotiation

      允许进行协商的方法。

    • Client TLS certificates

      配置客户端证书。

    • Server TLS certificates

      显示从服务端接收到的证书。

    Sessions

    会话相关的管理。

    image-20210909143256276

    Session Handling Rules⭐

    定义session 处理规则。

    image-20210909143545879

    • Rule Actions

      定义执行何种处理。

      • Use cookies from the session handling cookie jar

        使用 Cookie Jar 中记录的 cookie。

      • Set a specific cookie or parameter value

        设定指定cookie 或参数的值。

      • Check session is valid

        通过请求某一页面,或运行某个宏并检视其结果来检验当前的 session 是否有效。并根据检验结果选择进一步的操作。

      • Prompt for in-browser session recovery

        burp 会弹出一个记录 cookie 的面板,然后需要用户手动在浏览器中进行登录等恢复 session 的操作,之后选择cookie面板中成功的恢复的cookie。

      • Run a macro

        在发送请求前,运行指定的宏。

      • Run a post-request macro

        在得到响应后,运行指定的宏。

      • Invoke a Burp extension

        将请求传给 burp 的插件。

    image-20211010174223876

    • 定义此条处理规则应用的范围。

      工具、url、参数。三个方面的控制。

    动态维持网站的每个 Cookie。并可以用在其它工具。

    image-20211010215623510

    Macros⭐

    宏是一个或多个请求序列。可以用来自动进行登录或者获取 csrf token。

    image-20210909140523533

    image-20210909140551900

    image-20210909140620803

    Misc

    一些其它设置。

    image-20211010174928104

    • Scheduled Tasks

      自动暂停或继续执行 DashBoard 中的 Task 。

    • Burp Collaborator server

      collaborator server 相关的设置。

    • Logging

      记录哪些工具产生的流量。

    • Embedded Browser

      内置的浏览器相关设置。

    User options

    用户相关设置。比起Project options 来讲更通用。

    Connections

    image-20210907171357341

    Platform Authentication

    HTTP 认证凭证,burp 将会使用这些凭证处理服务器 401 需要认证的响应。

    Upstream Proxy Servers⭐

    http 代理

    image-20210907171423267

    SOCKS Proxy⭐

    socks5 代理

    TLS

    证书相关的设置。

    image-20210907171302910

    Display⭐

    显示相关设置

    image-20210907170901759

    • User Interface

      控制 burp 界面的字体大小以及主题。

    • HTTP Message Display

      HTTP 消息框的显示控制。

    • Character Sets

      设置 HTTP 数据包中的编码字符集。

    • HTML Rendering

      在选择渲染视图时,是否是否为了渲染页面而发送额外请求,例如img、script 等。

    Misc⭐

    image-20210907165442845

    • Hotkeys

      快捷键。

    • Automatic Project Backup

      自动备份项目文件。

    • Temporary Files Location

      临时文件存放目录。

    image-20210907165543127

    • REST API

      REST API 是一种 API 的规范标准,此处实际上就是 burp 的api 接口。

      实现的功能不多。

    • Proxy Interception

      burp 启动时 interception 的默认状态。

    image-20210907165856343

    • Proxy History Logging

      当修改 Target.Scope 中的目标范围时,是否将不在目标范围内的流量发送给 Proxy.History 或其它工具。

    • Performance Feedback

      向burp 提交应用使用统计,以便 burp 进行改善。

    • Updates

      自动更新

    image-20210907170654401

    • HTTP Message Search

      控制 HTTP 消息界面搜索框的默认设置。

    • Embedded Browser

      设置是否浏览器每次退出时清除个性化设置。

    • Learn Tab

      显示学习标签页

    其它工具

    Burp Infiltrator

    用来加强 Burp Scanner 功能的一个jar 包。需要在目标网站系统上安装,它会对网站程序进行更改,然后当识别到 Scanner 扫描时会将程序执行的堆栈信息传递给 Collaborator 。以便更好的在代码层确认漏洞。

    image-20211010183355915

    Burp Clickbandit

    用来生成点击劫持的 POC。

    image-20211010183421606

    Burp Collaborator client⭐

    用来尝试 OOB 技术的工具。

    image-20211010183441717

    用于录制登录序列,以便 scanner 功能的自动登录功能使用。

    image-20210909155408512

    DOM Invader⭐

    为了更方便的测试 XSS 。

    image-20210909160032931

    image-20211010161328491

    image-20211010161331565

    Mobile Assistant

    IOS 平台应用测试助手。

    MobileAssistant_15

  • 相关阅读:
    PyQt5使用http请求获取天气
    Qt获取某地的天气情况
    各种编码方式
    Qt获取天气信息并解析
    QFile读文件
    QUrl
    Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())的注意点
    adb命令开关蓝牙及NFC
    fragment重叠问题解决方法
    Android跨进程启动另外一个应用界面时存在的问题解决办法
  • 原文地址:https://www.cnblogs.com/starrys/p/15391188.html
Copyright © 2020-2023  润新知