BurpSuite 功能概览
简介
写作思想:相比较具体介绍某个功能的用法。会更加侧重于介绍 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 Jar
动态维持网站的每个 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 技术的工具。
Navigation Recorder
用于录制登录序列,以便 scanner 功能的自动登录功能使用。
DOM Invader
为了更方便的测试 XSS 。
Mobile Assistant
IOS 平台应用测试助手。
BurpSuite 功能概览的更多相关文章
- 系列博文-Three.js入门指南(张雯莉)-静态demo和three.js功能概览
一:一个最简单的静态DEMO //body加载完后触发init() //WebGL的渲染是需要HTML5 Canvas元素的,你可以手动在HTML的<body>部分中定义Canvas元素, ...
- ckeditor_学习(2) 功能概览
这篇文章用来说明 ckeditor 的所有可配置的功能,分为终端用户配置和开发者配置 1.终端用户配置 用户接口 – 设置编辑器的UI和语言 Editor 尺寸设置 – 设置编辑器的尺寸 插入内容 – ...
- MicroERP更新记录2.2:增加B/S查询功能
提供电脑版及手机版两种浏览方式,仅仅作为一个DEMO展示,由于系统内置报表比较复杂,待广泛收集用户需求之后再逐步完善. 网页文件在安装包内web文件夹中. 下载地址:60.2.39.130/micro ...
- C#软件开发实例.个人定制自己的屏幕抓图工具(八)加入了截图功能键盘
章文件夹 (一)功能概览 (二)创建项目.注冊热键.显示截图主窗体 (三)托盘图标及菜单的实现 (四)基本截图功能实现 (五)针对拖拽时闪烁卡顿现象的优化 (六)加入配置管理功能 (七)加入放大镜的功 ...
- c#TextBox输入框自动提示、自动完成、自动补全功能
功能概览 相关属性 TextBox.AutoCompleteCustomSource 属性 获取或设置当 TextBox.AutoCompleteSource 属性设置为 [CustomSource] ...
- 【原创】自己动手写工具----签到器[Beta 1.0]
一.写在前面 最近公司没有什么项目,想通过项目练练手的机会也没有,只能自己学习了,因此空下来的时间也挺多的,就打开网页看看吧,哎,一打开就让签到(像什么百度知道啊.百度云盘啊之类的),我签到的目的是获 ...
- Atitit 项目的主体设计与结构文档 v3
Atitit 项目的主体设计与结构文档 v3 1. 实现的目标2 1.1. cross device跨设备(pc 手机 平板)作为规划2 1.2. 企业级Java体系与开发语言2 1.3. 高扩展性, ...
- 产品列表页分类筛选、排序的算法实现(PHP)
一.简单的单条件查询 工作都是从简单的开始,先从最简单的单表查询开始,这个一般用在首页以及一些比较独立的页面,只需要查找几个符合条件的产品展示出来即可,可以使用分页或者不使用分页.下面这个是产品控制器 ...
- Redis命令大全&中文解释&在线测试命令工具&在线中文文档
在线测试命令地址:http://try.redis.io/ 官方文档:http://redis.io/commands http://redis.io/documentation Redis 命令参考 ...
随机推荐
- linux 常用命令(一)——查看硬盘空间-内存-线程的cpu负载-线程内存
系统参数检查: df -h [enter] 检查硬盘空间 TIP: 使用 man df 可查看该命令使用说明 ; q 退出. free检查内存使用情况: free [enter] TIP: 使用 ma ...
- Dapper同时操作任意多张表的实现
1:Dapper的查询帮助类,部分代码,其它新增更新删除可以自行扩展 using Microsoft.Extensions.Configuration; using System; using Sys ...
- 已知三角形ABC为锐角三角形,求 sinA + sinB·sin(C/2) 的最大值。
已知三角形ABC为锐角三角形,求 sinA + sinBsin(C/2) 的最大值. 解:Δ := sinA + sinB·sin(C/2) = sin(B+C) + sinB·sin(C/2) = ...
- 学习 Webpack5 之路(优化篇)
一.前言 从 0 到 1 学习的朋友可参考前置学习文章: 学习 Webpack5 之路(基础篇) 学习 Webpack5 之路(实践篇) 前置文章 学习 Webpack5 之路(基础篇) 对 webp ...
- K8S——Pod
一.Pod概念 二.Pod存在的意义 三.Pod的实现机制 四.Pod镜像拉取策略 五.Pod资源限制 六.Pod重启机制 七.Pod的健康检查 八.Pod调度策略(创建Pod流程)
- HZ游记
HZ 游记 Day -1 收拾东西,准备出发. 话说这几天一直比较懒,也没什么心情和效率学习,颓废好几天了,希望到衡水以后能感觉好点. 不知道衡水有没有妹子 非常想看看衡水的样子,但是又害怕封闭式教学 ...
- ABP 极简入门教程(二 MVC方式显示数据)
增加显示菜单 Sample.Web.MVC项目中找到startup目录打开SampleNavigationProvider.cs,根据现有内容添加以下内容 .AddItem( new MenuItem ...
- vue el-transfer新增拖拽排序功能---sortablejs插件
<template> <!-- target-order="unshift"必须设置,如果不设置的话后台穿的value值得顺序会被data重置 - --> ...
- vue从mock数据过渡到使用后台接口
说明: 最近在搭建一个前端使用vue-element-admin,后端使用springBoot的项目. 由于vue-element-admin使用的是mock的模拟数据跑起来的项目,所以在开发过程中难 ...
- python库--pandas--Series
方法 返回数据类型 参数 说明 Series(一维) .Series() Series 实例s 创建一维数据类型Series data=None 要转化为Series的数据(也可用dict ...