BurpSuite
在 攻防环境搭建 一章 工具:Burp Suite 中,我们简单使用了 BurpSuite 这款工具,接下来来详细介绍它。
Burp Suite 是渗透测试中最重要的工具。
下载地址:https://portswigger.net/burp
专业版地址,仅供学习使用:https://www.lzskyline.com/index.php/archives/121/
BurpSuite 是一个 jar(Java Archive)包,需要依赖 Java 环境。
打开
下载安装后,BurpSuite 可以通过桌面图标打开,也可以直接命令行打开:
# 进入 BurpSuite 地址
cd /Applications/Burp Suite Community Edition.app/Contents/Resources/app
# 运行
java -jar burpsuite_community.jar
加内存
BurpSuite 默认分配内存是 64M,如果请求太多会导致应用崩溃,可以手动加内存。
# 方式一:以 M 为单位
java -jar -Xmx2048M burpsuite_community.jar
# 方式二:以 G 为单位
java -jar -Xmx2G burpsuite_community.jar
机制和浏览器设置
BurpSuite 和 Xray 机制一样,都是通过中间拦截流量来实现的。
电脑代理
局部代理
在 在攻防环境搭建一章 工具:Burp Suite 中我们已经讲解了局部代理,也就是设置 Firefox 代理将流量转发到 BurpSuite 的 8080 端口,另外我们也可以直接装一个插件去方便切换代理:
添加我们的自定义代理
全局代理
全局代理也就是将本机中所有应用流量转发到 BurpSuite。Windows 系统可参考:Set up Global Proxy Settings for All Windows Applications
这里我们以 Mac 为例: > System Settings > Network > Wi-Fi > Details
接着在 Proxies 中设置我们的全局代理:
手机代理
首先确保电脑和手机在同一 WiFi 下。
获取电脑的 IP 地址,这里以 MacOS 为例:
ipconfig getifaddr en0
192.168.31.186
在 BurpSuite 上监听本机地址:
然后在手机上将代理改为手动,地址为我们获取到的电脑 IP 地址,端口为 8080。
在手机上安 装 CA 证书
// TODO
🧨 注意:很多主流 APP 内置防护,禁止 Burp 抓包,所以可能存在抓不到包的情况。
Proxy
Burp Proxy 是其核心功能,通过 Proxy 我们可以拦截、查看、修改请求。
默认情况下,Burp Proxy 只拦截普通的请求消息,不会拦截 JS、CSS、图片等的静态文件。
数据拦截与控制
设置
请求拦截设置
在 Request interception rules 可以添加拦截规则,去匹配我们想要的请求。
响应拦截设置
修改返回消息
- Unhide hidden form fields:显示 form 表单中隐藏字段
- Prominently highlight unhidden fields:高亮显示 form 表单中隐藏字段
- Enable disabled form fields:使 form 表单中的 disable 字段生效,变成可输入域
- Remove input field length limits:移除输入域长度限制
- Remove JavaScript form validation:移除 JavaScript 验证
- Remove all JavaScript:移除所有 JavaScript
- Remove
<object>
tags:移除标签 - Convert HTTPS links to HTTP:转换 HTTPS 为 HTTP
- Remove secure flag from cookies:移除 Cookie 中所有的安全标志
正则表达式
设置正则表达式自动替换请求和响应中的内容。
比如我们把请求中的邮箱都替换为 wukaipeng@burpsuite.com
在任意的地方输入一个邮箱,都会被修改:
转发请求:Request handling
Proxy 有一个选项是 Request handling,可以把流量转发到其他主机,比如我们可以转发到 Xray 上,做二次扫描。
这种方式只适用于 HTTP 站点。
对于 HTTPS 方式,见文档 🔗 https://docs.xray.cool/#/scenario/burp
:::info💡 Burp 和 Xray 联动的意义在于?
首先先了解下:
-
WAF Web Application Firewall 应用防火墙,可以阻止像 AWVS 和 Xray 主动扫描对网站的扫描
-
防火墙和 IPS Intrusion Prevention System 可以防止像 Nessus 主机扫描
Burp 和 Xray 联动的意义可以通过
:::
添加 SSL
当我们打开 https://wukaipeng.com
的时候,会发现 FireFox 会提示这样的安全警告,这是因为在 HTTPS 通信中,需要安装 CA 证书。
📥 打开网站 http://burp/,在右上角下载 CA 证书
🤨 很奇怪的是,Chrome 和 Edge 都没办法访问 http://burp/,但是 FireFox 却可以。。。
我们已 Mac 为例导入 CA 证书,首先打开 Mac 自带的 Keychain Access,在菜单项选择 Import Items
然后导入下载好的 CA 证书,我们是把证书放在 System 下面,导入成功后在 Certificates 分类中可以看到我们刚刚导入的 PortSwigger CA 证书。
接着在 Firefox 打开设置,找到 Certificate Manager,然后导入证书:
导入之后重启一下 FireFox,这个时候重新访问 https://wukaipeng.com
就不会有安全警告了。
Target
Burp Target 由三部分组成:
- 作用域 Scope:想要监听请求的过滤面,可以是网站域名,也可以是网站下某一个目录
- 站点地图 Site Map
- Target 工具的使用
作用域
可以非常细粒度地设置拦截内容,包括协议、主机、端口,以及文件
站点地图
工具
Analyze tools
分析站点 URL
分析结果:
包含:
- Summary
- Dynamic URLs:带参数的,比如
https://wukaipeng.com?password=123&username=idiot
- Static URLs:不带参数的
- Parameter
Dicover Content
分析站点的目录结构。
Burp Scan
在 Dashboard,Burp Scan 已经默认开启被动爬取和审计。
Live passive crawl from Proxy: 实时被动爬虫
Live audit from Proxy:实时审计
被动扫描
被动扫描几乎不会去改造请求,只是对现有的请求响应做一个简单的分析。
- 优点:对业务几乎无影响,适用于扫描生产环境
- 缺点:扫描能力有限。
被动扫描容易发现的漏洞:
- 提交的密码为未加密的明文(可用DVWA演示)
- 不安全的Cookie的属性,比如缺少的HttpOnly和安全标志
- cookie的范围缺失
- 跨域脚本包含和站点引用泄漏
- 表单值自动填充,尤其是密码
- SSL保护的内容缓存
- 目录列表
- 提交密码后应答延迟
- session令牌的不安全传输
- 敏感信息泄露,像内部IP地址,电子邮件地址,堆栈跟踪等信息泄漏
- 不安全的ViewState的配置
- 错误或者不规范的Content-type指令
主动扫描
向应用发送新的请求,并分析 payload 判断漏洞
- 优点:扫描效果好
- 缺点:产生大量的请求,对业务性能有影响,建议用于非生产环境。
Burp 在检测过程中,采用各个技术来验证漏洞是否存在,比如诱导时间延迟、强制修改 Boolean 值,与 模糊测试的结果进行比较,以达到高准确性的漏洞扫描报告。
Intruder ⭐️
我们使用 DVWA 的 Brute Force 模块作为测试:
拦截到请求之后,发送到 Intruder
替换点
密码字典是预设的密码集合,比如:
abcdef
qwerty
1234
12345
123456
qazwsx
设置响应中是否有匹配正则的字符串:
常见登录页面可爆破的情况:
- 账号+密码
- 账号+密码+图形验证码
- 账号+密码+短信验证码
爆破的关键点在于控制变量。
Repeater
多次重放请求。