BurpSuite 功能概览
阅读原文时间:2021年10月11日阅读:1

简介

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

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

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

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

安装启动

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

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

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

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

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

各模块及功能的详细介绍

Dashboard

控制和监视自动事件。

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

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

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

New scan

进行主动 爬取爬取并审计

Scan details

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

Scan configuration-Crawl

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

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

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

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

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

Scan configuration-Audit

  • Audit Optimization:审计的优化,决定速度,精确性。四个选项分别决定:

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

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

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

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

自定义的登录功能。

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

Resource pool

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

New live task

进行被动 爬取审计

Scan details

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

Scan configuration-Crawl

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

和New scan 的 Audit 配置一样。

Resource pool

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

Target

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

Site map

显示网站地图。

右键功能

主动scan、被动 scan。

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

Scope

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

Issue definitions

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

Proxy

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

Intercept

拦截数据包。

右键功能

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

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

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

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

HTTP history

查看历史的数据包记录。

WebSockets history

查看历史 websockets 消息记录。

Options

对 Intercept 、Proxy 功能进行定制。

  • Proxy Lsteners

    监听的端口,管理证书。

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

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

  • Response Modification

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

  • Match and Replace

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

  • TLS pass through

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

  • Miscellaneous

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

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

Repeater

重放数据包。

Intruder

数据包爆破

Target

Positions

  • Sniper

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

  • Battering ram

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

  • Pitchfork

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

  • Cluster bomb

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

Payloads

  • 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。

  • Payload processing

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

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

  • Payload Encoding

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

Resource Pool

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

Options

一些控制选项。

  • Save Options

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

  • Attack request headers

    更新请求headers。

  • Error handling

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

  • Attack results options

    保存请求、响应。

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

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

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

  • Grep - Match

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

  • Grep - Extract

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

  • Grep - Payloads

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

  • Redirections

    决定是否跳转。

Sequencer

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

Decoder

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

Comparer

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

Logger

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

Extender

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

Extensions

管理插件。

BApp Store

插件商店。

APIS

burp 的 API 文档。

Options

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

Project options

设置该项目文件的选项。

Connections

连接相关的设置。

  • 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 协议的一些设置。

  • Redirections

    决定处理哪些重定向。

  • Streaming responses

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

  • Status 100 responses

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

  • HTTP/2

    是否尽可能使用 HTTP/2

TLS

证书相关配置。

  • TLS Negotiation

    允许进行协商的方法。

  • Client TLS certificates

    配置客户端证书。

  • Server TLS certificates

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

Sessions

会话相关的管理。

Session Handling Rules

定义session 处理规则。

  • 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 的插件。

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

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

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

Macros

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

Misc

一些其它设置。

  • Scheduled Tasks

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

  • Burp Collaborator server

    collaborator server 相关的设置。

  • Logging

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

  • Embedded Browser

    内置的浏览器相关设置。

User options

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

Connections

Platform Authentication

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

Upstream Proxy Servers

http 代理

SOCKS Proxy

socks5 代理

TLS

证书相关的设置。

Display

显示相关设置

  • User Interface

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

  • HTTP Message Display

    HTTP 消息框的显示控制。

  • Character Sets

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

  • HTML Rendering

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

Misc

  • Hotkeys

    快捷键。

  • Automatic Project Backup

    自动备份项目文件。

  • Temporary Files Location

    临时文件存放目录。

  • REST API

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

    实现的功能不多。

  • Proxy Interception

    burp 启动时 interception 的默认状态。

  • Proxy History Logging

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

  • Performance Feedback

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

  • Updates

    自动更新

  • HTTP Message Search

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

  • Embedded Browser

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

  • Learn Tab

    显示学习标签页

其它工具

Burp Infiltrator

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

Burp Clickbandit

用来生成点击劫持的 POC。

Burp Collaborator client

用来尝试 OOB 技术的工具。

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

DOM Invader

为了更方便的测试 XSS 。

Mobile Assistant

IOS 平台应用测试助手。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章