[bɜ:p] [swiːt]
Burp Suite
- Burp Suite
- 培训和认证(Academy)
- 研究院(Research)
- 日报(Daily)
获取地址:https://portswigger.net/burp/releases
- Burp Suite 1.7.33
- Burp Suite 2020.2
测试网站安全性
- 抓HTTP包;
- 改HTTP包;
- 自动请求;
- 过滤响应。
- SQL注入;
- 文件上传;
- XSS;
- CSRF;
- FUZZ;
- 重放;
- 攻击;
- 密码爆破;
- 爬取数据;
- 漏洞扫描。
- 集成化;
- 自动化;
- 可扩展。
- 企业版Enterprise Edition;
- 社区版Community Edition;
- 专业版Professional ($399/year)。
- Jar(推荐)
- Linux
- MacOS(ARM、Intel)
- Windows
问号按钮
https://portswigger.net/support https://portswigger.net/burp/documentation/desktop
https://portswigger.net/web-security
https://forum.portswigger.net/
推荐2021+,jar包版本,下载地址:https://portswigger.net/burp/releases
推荐解压版(zip)
推荐JDK11 (配合Burp 2021)
下载镜像:https://repo.huaweicloud.com/java/jdk/
| 变量 | 值 |
|---|---|
| JAVA_HOME | JDK解压的根路径 |
| PATH | %JAVA_HOME%\bin |
激活软件下载地址: https://github.com/h3110w0r1d-y/BurpLoaderKeygen/releases
汉化包地址: https://github.com/h3110w0r1d-y/BurpLoaderKeygen/releases/download/2.0/BurpLoaderKeygenCn.jar
burp_start.bat,内容:
@echo off
cmd /k "java -jar BurpLoaderKeygen.jar"set ws=WScript.CreateObject("WScript.Shell")
ws.Run "burp_start.bat",0burp_cn_start.bat,内容为:
@echo off
cmd /k "java -jar BurpLoaderKeygenCn.jar"- 字体大小;
- 汉字乱码。
参考手册:https://portswigger.net/burp/documentation/contents
- 搜索内容;
- 配置库;
- 用户选项;
- Infiltrator;
- Clickbandit;
- Collaborator client。
- 工程配置;
- 重命名;
- 保存备份;
- 导入配置;
- 导入遗留状态文件。
- 发起攻击;
- 打开工作空间;
- 扫描预定义的插入点;
- 被动扫描;
- 主动扫描;
- 发送到Repeater;
- 保存、加载、复制配置;
- 打开新标签时的操作;
- 自动标记payload位置;
- 配置预定义字典;
- 关闭攻击结果时的偏好。
- 更新Content-Length;
- 解压压缩的数据;
- 跟随重定向跳转;
- 重定向的cookie处理;
- 跨域跳转;
- HTTP1行结尾;
- HTTP2连接重用;
- 剥离HTTP2连接头;
- 允许HTTP2 ALPN覆盖。
补充官方文档:https://portswigger.net/burp/documentation/desktop/tools/repeater/options
剥离XXX窗口
- 离线文档;
- 上手;
- 用BP做渗透测试;
- 支持中心(在线);
- 更新记录;
- 上报bug;
- 运行诊断;
- 内置浏览器健康检查;
- 许可证;
- 检查更新;
- 下载其他安装器;
- 删除BP。
官方文档:https://portswigger.net/burp/documentation/desktop/tools
- 扫描;
- 任务Tasks;
- 事件日志Event Log;
- 漏洞问题Issue activity。
官方文档:https://portswigger.net/burp/documentation/desktop/dashboard
- 生成站点地图(sitemap);
- 设置扫描域(target scope);
- 生成安全分析。
拦截浏览器的HTTP数据包(包括请求和响应)。
对拦截到的请求(地址),设置攻击载荷 (payload),利用字典进行渗透测试,比如:
- 目录扫描;
- 密码暴力破解;
- 压力测试;
- FUZZ等等。
- 分析每一步具体的请求和响应内容;
- 修改请求和响应内容;
- 重发请求内容。
用来评估Token、Session等关键字段是否可以伪造(是否固定、是否可预测)。
对请求数据进行编码、解码。
类型:
URL; HTML; Base64; ASCII hex; Hex; Octal; Binary; Gzip。
算法:
SHA; SHA-1; SHA-224; SHA-256; SHA-384; SHA-512; SHA-512/224; SHA-512/256; SHA3-224。
对两次请求的结果进行对比。
对插件进行管理。
- 浏览器代理设置;
- Burp Suite代理设置;
- Burp Suite拦截HTTPS数据;
- Burp Suite拦截手机App数据。
- 突破IP限制;
- 隐藏IP;
- 加速访问;
- 等等。
拦截HTTP(S)请求,并对请求和响应进行处理和利用。
| 对比项 | Burp | Fiddler | WireShark |
|---|---|---|---|
| 平台 | 多平台 | Windows | 多平台 |
| 定位 | 渗透测试套件 | Web调试工具 | 网络封包分析工具 |
| 功能 | 渗透测试 | 调试HTTP请求 | 分析数据帧 |
| 操作 | 描述 |
|---|---|
| Forward | 放行本次拦截的包,发送到服务器 |
| Drop | 丢弃本次拦截的包 |
| on/off | 拦截开关 |
| Action | 对数据的操作 |
| Open in Browser | 打开内置浏览器 |
| 操作 | 描述 |
|---|---|
| Proxy Listeners | 监听器 |
| Intercept Client Requests | 请求拦截规则 |
| Intercept Server Response | 响应拦截规则 |
| Response Modification | 响应结果修改 |
| Match and Replace | 匹配和替换 |
| TLS Pass Through | TLS穿透 |
| Miscellaneous | 杂项 |
- 操作系统安装根证书,里面有CA的公钥;
- CA颁发的证书,包含机构的公钥,并且用CA的公钥对机构公钥摘要加签;
- 浏览器利用CA的公钥对摘要进行验签,确定机构公钥合法;
- 浏览器用机构的公钥与服务器协商会话密钥;
- 浏览器与服务器用会话密钥通信。
说明:如果要对手机App或者App的服务器进行渗透,首先需要先抓到App发出的HTTP请求包。
准备工作:
- 可以连上无线网络的电脑,并且安装好BurpSuite;
- 手机(本文以华为手机为例),其他品牌手机的网络代理设置可以自行搜索步骤。
具体步骤:
1、开启电脑Burp监听
首先电脑需要连接到WiFi,不能使用有线网络,这样才能让手机和电脑处于同一网络环境(如果台式机的有线和手机WiFi是同一个网络环境也可以)。
电脑打开cmd,输入ipconfig -all,查看WLAN的IPv4地址:
比如当前 IP 是 192.168.10.142,先记住,等下要用。
启动Burp,打开Proxy——Options——Add在打开的添加窗口中,端口依然填写8080,绑定地址选择刚才看到的那个IP地址,如图:
点OK确定。
这时候监听器要勾选新建的这个而不是默认的:
2、配置手机WiFi代理
首先将手机连接到与电脑相同的 WiFi 中。 从手机的“设置”,进入 WLAN 设置
长按当前连接的 WiFi 名字,点击弹出的“修改网络”。
在打开的窗口中,勾选“显示高级选项”
开启代理:点击代理开关,在弹出的窗口中选择“手动”。
开启代理开关之后,需要配置代理:
代理已经配置完了。接下来手机上所有的网络请求都会发送 到 Burp 上。
需要注意:并不是你在操作 App 的时候才会有网络请求。 手机上的 App 无时无刻都在访问网络,所以会抓到很多无关的 包。
建议在手动操作之前才打开 Burp 的拦截开关,这样可以准 确地抓到包。 在 Proxy——Intercept 打开拦截开关: 比如:手机浏览器打开百度搜索,通信包被电脑上的 Burp 抓到: 至此,抓包的设置就完毕了。
3、手机安装证书 对于 HTTPS 的网站,客户端需要用服务器的密钥加密消息 以后发出。 当配置了代理,客户端(浏览器)向 burp 请求证书,但是 burp 没有证书,浏览器就会提示不安全。或者,使用了服务器的 证书加密,burp 抓到的是加密以后的消息,是无法查看和修改的。 所以完整的流程是这样的: 客户端先用 burp 的密钥加密消息。burp 解密称明文以后, 再用服务器的密钥加密消息。 所以这里要在手机上安装 burp 的证书。 选择第一个,DER 格式证书,点 Next
选择保存的 CA 路径(比如 D 盘),文件后缀命名为.cer, 非常重要,因为手机只能安装.cer 的证书类型,默认的 der 格式 是不能被识别安装的。点击保存,然后 Next
导出完毕,关闭窗口:
把文件发送到手机,比如用微信的“文件传输助手”。在手 机上“用其他应用打开”。 选择“证书安装器”打开,仅一次
写入证书名称,选择 WLAN,确定,安装成功。 在设置里面搜索“证书”,用户凭据,查看证书:
可以看到已经安装的证书:
4、取消 burp 抓包 如果不需要抓手机的包了,需要正常访问,取消代理即可。 长按 WiFi 名字进入设置——显示高级选项——代理,设置 为“无”,保存,即可
此外,也可以在电脑上安装 Android 模拟器,这样可以直接在电脑上抓模拟器的包。
Burp渗透测试流程
与HTTP History的区别:
- HTTP History按时间顺序记录;
- Target按主机或者域名分类记录。
Target模块的作用:
- 把握网站的整体情况;
- 对一次工作的域进行分析;
- 分析网站存在的攻击面。
攻击面:
对一个软件系统可以采取的攻击方法集合,一个软件的攻击面越大安全风险就越大。主要包括:
- 字段;
- 协议;
- 接口;
- 服务;
- 硬件的攻击点。
同一个域的定义
- 协议、域名、端口必须相同;
- 目录、文件、参数可以不同。
例如:
使用场景:
- 限定Sitemap和HTTP history记录哪些域的内容;
- 限定Spider抓取哪些域的内容;
- 限定Scanner扫描哪些域的安全漏洞。
站点地图记录类型:
- 自动(爬行) ;
- 手动(浏览器访问)。
右键菜单:
Referer字段:
作用:告诉服务器当前请求是从哪个页面链接过来的。
应用场景:
- 来源统计;
- 防盗链。
- https://portswigger.net/burp/documentation/scanner
- https://portswigger.net/burp/documentation/desktop/scanning
模块总体介绍:
https://portswigger.net/burp/vulnerability-scanner
扫描功能的使用:
https://portswigger.net/burp/documentation/desktop/getting-started/running-your-first-scan
收录的漏洞:
https://portswigger.net/kb/issues
漏洞扫描与工具
- AWVS;
- Appscan;
- Nessus;
- Openvas;
- Goby;
- Xray;
- ZAP;
- ......。
旧版BP:
新版BP:
- 爬行Crwal;
- 审计Audit。
| 内容 | 描述 |
|---|---|
| Scan(主动扫描) | 给定地址,爬取内容,检测漏洞 |
| Live task (被动扫描) | 对经过Proxy、Repeater、Intruder的请求进行漏洞检测 |
| live passive crawl from proxy(all traffic) | 来自Proxy的被动流量抓取 |
| live audit from proxy(all traffic) | 流量的实时审计 |
- Actively Scan:主动扫描 = Crawl and audit
- Passively Scan:被动扫描 = Live audit
方式:爬取所有链接,检测漏洞 特点:发送大量请求 使用场合:开发、测试环境 针对漏洞: 客户端的漏洞,如XSS 、HTTP头注入、操作重定向。 服务端的漏洞,如SQL注入、命令行注入、文件遍历。
方式:只检测经过BP代理服务器的地址,不爬取 特点:发送有限请求 使用场合:生产环境 针对漏洞: 提交的密码为未加密的明文。 不安全的cookie的属性,例如缺少HttpOnly和安全标志。 cookie的范围缺失。 跨域脚本包含和站点引用泄露。 表单值自动填充,尤其是密码。 SSL保护的内容缓存。 目录列表。 提交密码后应答延迟。 session令牌的不安全传输。 敏感信息泄露,例如内部IP地址、电子邮件地址、堆枝跟踪等信息泄露。 不安全的ViewState 的配置。 错误或不规范的Content-Type指令。
Crawl 爬行(建立站点地图) Audit 审计(扫描漏洞)
Scan Configuration:爬行和审计的设置 Application login:账号密码 Resouce pool:线程池设置
| 内容 | 翻译 | 作用 |
|---|---|---|
| Crwal Optimization | 爬行的优化 | 最大链接深度;更快还是更完整 |
| Crwal Limits | 爬行最大限制 | 最大时间;最多链接;最大请求数 |
| Login Functions | 登录注册 | 登录操作:自动注册;用无效的用户名主动触发登录失败 |
| Handling Application | 错误处理 | 爬行过程中的错误处理,比如超时 |
| Miscellaneous [ˌmɪsəˈleɪniəs] | 杂项 | 杂项 |
| 内容 | 翻译 | 作用 |
|---|---|---|
| Audit Optimization | 审计优化 | 扫描的速度和精确度 |
| Issues Reported | 问题报告 | 报告哪些漏洞:根据扫描类型或者漏洞类型来过滤,默认全选 |
| Handling Application Errors During Audit | 审计过程出错的处理 | 比如连接失败和传输超时默认:如果一个插入点连续失败两次,就跳过,不再发送请求 (接口挂了) 如果连续两个插入点失败,跳过其他的插入点(网站挂了) |
| Insertion Point Types | 插入点的类型 | URL参数值、Body里面的参数值、Cookie值、参数名字、HTTP请求头、Body完整内容、 URL文件名、URL目录 |
| Modifying Parameter Locations | 插入点位置 | 替换,交叉检测 |
| Ignored insertion Point | 忽略的插入点 | |
| Frequentcly Occurring Insertion Points | 插入点相同时 | 当大量的插入点结果没有区别的时候,更加高效地扫描。 |
| Misc Insertion Point Options | 杂项 | 一个插入点的最大请求数量 |
| JavaScript Analysis | JavaScript审计 |
Scan:输入URL或者URL右键 Live Task:从其他模块获取到流量
Live Task:
- Audit 不会爬行
- passive crawl 会爬行
右键导出
https://portswigger.net/burp/samplereport/burpscannersamplereport
参考资料:https://portswigger.net/burp/documentation/desktop/tools/repeater
- 发起HTTP请求,分析响应;
- 重放请求。
举例:Spring漏洞
- 从其他模块发送(Ctrl +R )
- 手动填入
参考资料:https://portswigger.net/burp/documentation/desktop/tools/intruder
原理:对请求参数进行修改,分析响应内容,获得特征数据
本质:
- 自动化发起HTTP请求
- 基于现成字典或者生成字典
用途:
- 猜测用户名、密码等;
- 寻找参数、目录等;
- 枚举商品ID、验证码等;
- 模糊测试(FUZZ) 。
可替代工具:
- wfuzz(全部功能)
- dirb(目录扫描)
- hydra(暴破)
- 从其他模块发送或者手动填写;
- 选择攻击模式 Attack type;
- 选择攻击字段 Positions;
- 设置payload;
- 其他设置(线程池等) ;
- 发起攻击;
- 查看结果。
- Sniper 狙击手
- Battering ram 攻城锤
- Pitchfork 草叉
- Cluster bomb 榴霰[xiàn]弹
| 类别 | 名称 | 描述 |
|---|---|---|
| Simple list | 简单字典 | 添加、粘贴或者从文件读取字典,或者使用预定义的字典 |
| Runtime file | 运行时文件 | 运行时,Burp Intruder将读取文件的每一行作为一个Payload |
| Custom iterator | 自定义迭代器 | 这个是占位填充的一种方式,最多8位 |
| Character substitution | 字符替换 | 把字典里面相应的字符进行替换 |
| Case modification | 大小写修改 | 要不要保持原样的,要不要全部大写的,要不要全小写的,要不要驼峰命名的 |
| Recrusvive grep | 递归查找 | 用来提取相应数据的比如拿到PHPSESSIONID,拿到TOKEN 等等,可以通过格式匹配抓取到对应的字段值。 |
| Illegal unicode | 非法Unicode 编码 | 用于绕过正则表达式的过滤验证 |
| Character blocks | 字符块 | 比如生成100A,200个+号,300个数字1等等 |
| numbers | 数字组合 | |
| dates | 日期组合 | |
| Brute forcer | 暴力破解 | 暴力枚举,最后一位先固定,然后一个个改 |
| Null payloads | 空payload | 不需要设置payload |
| Character frobber | 字符frobber | 依次修改指定字符串在每个字符位置的值,每次都是在原字 符上递增一个该字符的ASCII码。 |
| Bit flipper | Bit翻转 | 对预设的Payload原始值,按照比特位,依次进行修改 |
| Username generator | 用户名生成器 | 主要用于用户名和email帐号的自动生成 |
| ECB block shuffler | ECB加密块洗牌 | 基于ECB加密模式的Payload生成器 |
| Extension-generated | Burp Payload 生成插件 | 基于Burp插件来生成Payload值,需要安装插件 |
| Copy other payload | Payload复制 | 是将其他位置的参数复制到Payload位置上(比如密码要输入两遍) |
参考资料:https://portswigger.net/burp/documentation/desktop/tools/intruder/payloads/types
所有字段的值相同,来自同一个字典
从多个字典提取值,赋给多个字段,按顺序一一对应
例如:
- 100个用户名
- 50个密码
- 最终请求次数:50次
所有字典全部交叉验证
例如:
- 100个用户名
- 50个密码
- 最终请求次数:5000次
Grep Match
Grep Extract





































