一、课程定位与目标
1.1 本章核心定位
-
针对协议 :HTTP/HTTPS协议(⚠️ 重要:其他协议如TCP/UDP/游戏协议等,需用Wireshark等工具,本节课工具无法抓取)
-
针对对象:四大方向
-
Web网站(浏览器访问)
-
APP应用(手机端)
-
小程序(微信小程序等)
-
PC应用(C/S架构客户端,如腾讯文档PC版)
-
-
使用工具:Fiddler、Charles(茶杯)、Burp Suite、Proxifier(转发联动工具)
1.2 课程边界(重要)
明确告知 :本节课只解决无防护场景的抓包。后续课程将讲解:
其他协议抓包(Wireshark、科莱)
反代理检测绕过(APP/小程序专项章节)
证书校验绕过
数据加密解密分析
二、环境准备:证书安装(前置条件)
2.1 为什么必须安装证书?
-
HTTPS抓包前提:不安装证书无法抓取HTTPS加密流量
-
原理:证书用于解密HTTPS流量,实现中间人代理(MITM)
2.2 证书安装步骤
A. Charles(茶杯)证书安装
本地电脑安装:
-
打开Charles →
Help→SSL Proxying→Save Charles Root Certificate... -
保存证书到桌面(命名为"Charles")
-
双击安装或导入系统证书存储
安卓模拟器安装:
-
将证书文件拖入模拟器共享目录(或通过文件传输)
-
模拟器设置 → 安全 → 从SD卡安装证书
-
选择证书文件 → 输入锁屏密码 → 命名安装
B. Fiddler证书安装
导出证书:
-
打开Fiddler →
Tools→Options→HTTPS -
勾选
Decrypt HTTPS traffic -
Actions→Export Root Certificate to Desktop
安装方式同Charles:本地双击安装 + 模拟器SD卡安装
C. Burp Suite证书安装
本地安装:
-
打开Burp Suite →
Proxy→Options→Import/export CA certificate -
选择
Export→Certificate in DER format -
保存为
.der文件 -
浏览器设置 → 安全 → 管理设备证书 → 中间证书颁发机构 → 导入
模拟器安装(特殊处理):
⚠️ 注意 :Burp证书为
.der格式,安卓模拟器不直接识别,需转换:
-
在模拟器浏览器中访问Burp代理地址(如
http://192.168.1.6:8080) -
点击页面上的
CA Certificate下载 -
下载后位于
Download目录,将后缀改为.cer -
设置 → 安全 → 从SD卡安装 → 选择
.cer文件安装
三、四大对象抓包实战
3.1 Web网站抓包(浏览器)
Charles抓包
-
特点:无需设置代理,直接启动即可抓取本机浏览器流量
-
配置 :
Proxy→Proxy Settings→ 勾选Enable transparent HTTP proxying -
远程抓取 :若抓模拟器流量,需勾选
Support HTTP/2和Enable SOCKS proxy
Fiddler抓包
-
特点:无需设置代理,自动抓取系统HTTP/HTTPS流量
-
配置 :
Tools→Options→HTTPS→ 勾选Capture HTTPS CONNECTs和Decrypt HTTPS traffic -
筛选功能:可针对特定域名筛选(Filter功能)
Burp Suite抓包(重点)
-
特点 :必须设置代理,偏向安全测试,支持数据包拦截修改
-
配置步骤:
表格
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 设置代理监听 | Proxy → Options → Add → 绑定地址(127.0.0.1或本机IP)→ 端口(默认8080) |
| 2 | 浏览器设置代理 | 设置 → 代理 → 手动设置 → 127.0.0.1:8080 |
| 3 | 开启拦截 | Proxy → Intercept → Intercept is on |
| 4 | 抓包测试 | 访问目标网站,数据包会卡在Burp中,可修改后放行 |
⚠️ 关键注意事项:
代理开关必须对应:设置代理后Burp必须开启,否则网站无法访问(流量走到代理端口但无工具监听,导致断网)
排除本地地址 :浏览器代理设置的"请勿对以下地址使用代理服务器"中,删除所有本地地址,否则本地靶场抓不到包
3.2 APP应用抓包(安卓模拟器)
核心原理
模拟器相当于独立设备 ,有独立IP地址。抓包工具在本机运行,需让模拟器流量主动走向本机工具。
配置步骤(以Burp为例)
步骤1:确认本机IP地址
bash
复制
# Windows
ipconfig
# 选择实际出网IP(以太网或WiFi适配器),非VMware虚拟网卡
步骤2:模拟器设置代理
-
模拟器设置 → WLAN → 长按当前网络 → 修改网络
-
高级选项 → 代理 → 手动
-
代理服务器主机名:本机IP(如
192.168.1.6) -
代理服务器端口:Burp监听端口(如
8080)
步骤3:Burp添加监听地址
Proxy→Options→Add→ 选择本机IP(非127.0.0.1)→ 端口8080
步骤4:验证抓包
-
模拟器浏览器访问HTTP/HTTPS网站,确认Burp能抓到包
-
再打开目标APP测试
⚠️ 关键检查点:
先确保浏览器能抓HTTP/HTTPS,再测试APP
若抓不到,检查:证书是否安装、代理IP是否正确、Burp监听地址是否添加本机IP
Charles/Fiddler抓APP
-
同样需设置"从远程客户端抓取"(Charles:
Proxy Settings→ 勾选相关选项) -
模拟器代理设置同上
3.3 微信小程序抓包
核心难点
-
微信有代理设置,但直接设置系统代理会导致微信功能异常(消息发不出等)
-
微信内置浏览器/小程序无法直接配置独立代理
解决方案:转发联动(两种方法)
方法一:Charles + Burp Suite联动(推荐)
表格
| 步骤 | 操作 |
|---|---|
| 1 | Charles正常抓取小程序流量(无需代理设置,自动抓) |
| 2 | Charles设置转发:Proxy → Proxy Settings → macOS/Windows → External Proxy Settings |
| 3 | 勾选Use external proxy servers → HTTP/HTTPS都设置为127.0.0.1:8080(Burp地址) |
| 4 | Burp监听127.0.0.1:8080 |
| 5 | 打开微信小程序,Charles抓到后自动转发到Burp |
方法二:Proxifier + Burp Suite(进程级转发)
Proxifier作用:强制指定进程走指定代理,无需应用程序本身支持代理设置
表格
| 步骤 | 操作 |
|---|---|
| 1 | 打开Proxifier → 配置文件 → 代理服务器 → 添加 |
| 2 | 地址:127.0.0.1,端口:8080,协议:HTTPS → 确定 |
| 3 | 配置文件 → 代理规则 → 添加 |
| 4 | 名称 :Wechat(任意) 应用程序 :wechat*.exe(通配符匹配微信所有进程) 目标主机 :任意 目标端口 :任意 动作:选择刚才创建的代理服务器 |
| 5 | Burp监听127.0.0.1:8080 |
| 6 | 打开微信小程序,流量自动转发到Burp |
Proxifier优势:
可基于进程 、目标主机 、目标端口精细筛选
针对无代理设置选项的PC应用/小程序尤其有效
3.4 PC应用抓包(C/S客户端)
以腾讯文档PC版为例
方法一:系统代理(简单但不推荐)
-
直接设置系统代理指向Burp(
127.0.0.1:8080) -
缺点:所有流量都走代理,干扰信息多,且部分应用检测代理后拒绝运行
方法二:Proxifier进程级抓包(推荐)
表格
| 步骤 | 操作 |
|---|---|
| 1 | 找到目标进程名(任务管理器 → 腾讯文档 → 进程名如TencentDocs.exe) |
| 2 | Proxifier添加代理服务器:127.0.0.1:8080(HTTPS) |
| 3 | 代理规则 → 添加 → 应用程序填TencentDocs.exe(可用通配符*) |
| 4 | 动作选择代理服务器 |
| 5 | Burp监听127.0.0.1:8080 |
| 6 | 操作腾讯文档(登录、打开文件等),Burp抓包分析 |
⚠️ 权限问题 :部分大型应用(如360、腾讯系)有高权限保护,进程级抓包工具无法获取其数据,需更高权限或后续逆向课程解决。
四、工具对比与选择建议
表格
| 工具 | 是否需要代理 | 适用场景 | 核心优势 | 局限性 |
|---|---|---|---|---|
| Charles(茶杯) | ❌ 不需要 | 快速抓包、APP/小程序初步分析 | 启动即用,界面友好,支持远程抓取 | 安全测试功能弱,无法拦截修改重放 |
| Fiddler | ❌ 不需要 | 快速抓包、HTTP调试 | 启动即用,脚本扩展能力强 | 界面较乱,安全测试功能弱 |
| Burp Suite | ✅ 必须设置 | 专业安全测试、渗透测试、SRC/CTF | 拦截修改重放、Intruder爆破、Repeater重放、Scanner扫描 | 必须配置代理,无代理场景需联动 |
| Proxifier | - | 无代理设置选项的程序强制代理 | 进程级代理转发,突破代理限制 | 只是转发工具,不直接抓包 |
五、核心操作流程图(可复现)
5.1 标准抓包流程(Web/APP)
plain
复制
环境准备
↓
安装证书(本地浏览器 + 模拟器/目标设备)
↓
选择工具
├── Charles/Fiddler → 启动即用 → 筛选目标域名 → 分析数据包
│
└── Burp Suite → 配置代理监听 → 目标设备设置代理 → 开启拦截 → 抓包/修改/重放
5.2 无代理场景抓包流程(小程序/PC应用)
plain
复制
环境准备(证书安装)
↓
Charles抓取(自动抓无代理限制流量)
↓
Charles设置转发到Burp(External Proxy Settings → 127.0.0.1:8080)
↓
Burp监听127.0.0.1:8080 → 获得可测试的数据包
或
plain
复制
Proxifier配置
├── 添加代理服务器:127.0.0.1:8080
├── 添加代理规则:指定目标进程(wechat.exe / TencentDocs.exe)
└── 动作:走代理服务器
↓
Burp监听127.0.0.1:8080 → 抓包分析
六、常见故障排查
表格
| 现象 | 原因 | 解决 |
|---|---|---|
| 设置代理后网站/APP无法访问 | Burp未开启或监听地址错误 | 检查Burp是否开启,监听地址是否与代理设置匹配 |
| 抓不到HTTPS包 | 证书未安装或安装位置错误 | 重新安装证书到"受信任的根证书颁发机构" |
| 模拟器抓不到包 | 代理IP错误(选成了VMware虚拟网卡) | ipconfig确认实际出网IP,非VMnet8/VMnet1 |
| Burp监听不到模拟器流量 | 只监听了127.0.0.1,未添加本机IP | Proxy → Options → Add → 添加本机IP(如192.168.1.6) |
| 微信小程序直接设置代理后异常 | 微信检测代理限制功能 | 改用Charles转发或Proxifier,不直接设置系统代理 |
| 腾讯文档等PC应用抓不到 | 高权限保护/无代理设置选项 | 使用Proxifier进程级转发,或后续逆向课程解决 |
七、本章核心考点总结(SRC/CTF/面试)
7.1 必知概念
-
抓包本质:中间人代理(MITM),解密HTTPS需安装CA证书
-
协议边界 :Fiddler/Charles/Burp只能抓HTTP/HTTPS,其他协议用Wireshark
-
代理原理:Burp通过本地监听端口截断流量,需浏览器/设备主动指向该端口
-
转发联动:Charles(抓)→ Burp(测),解决无代理设置场景
7.2 实操要点(面试常问)
-
证书安装 :本地+模拟器双环境,Burp证书需转
.cer格式 -
模拟器代理 :不是127.0.0.1,是本机实际IP(
ipconfig查看) -
Burp监听:需添加本机IP地址(非仅127.0.0.1)才能抓模拟器
-
小程序抓包 :微信直接设代理会异常,必须用Charles转发 或Proxifier
-
Proxifier规则 :基于进程名 (如
wechat*.exe)强制转发到Burp
7.3 工具选择(场景题)
-
快速看流量:Charles/Fiddler
-
渗透测试/改包重放:Burp Suite(必须配合代理)
-
无代理设置的小程序/PC应用:Charles + Burp 或 Proxifier + Burp
7.4 故障诊断(排错题)
-
网站打不开 → 检查Burp是否开启(代理设置后工具必须开)
-
本地靶场抓不到 → 删除代理排除列表中的本地地址
-
HTTPS显示乱码/无法访问 → 证书未正确安装
-
模拟器无流量 → 检查IP是否选对(非VMware虚拟IP)、Burp是否监听该IP
7.5 延伸考点(后续课程预告)
-
反代理检测绕过:APP检测代理环境直接断网,如何绕过?
-
证书固定(SSL Pinning):APP内置证书,如何突破?
-
非HTTP协议:游戏封包、TCP自定义协议用Wireshark分析
八、抓包技术的应用价值(回答"为什么要学")
表格
| 应用场景 | 具体说明 |
|---|---|
| 目标发现 | 获取APP/小程序的后端API接口、域名、IP地址,明确测试目标 |
| 漏洞测试 | 分析数据包参数,测试SQL注入、越权、未授权访问、信息泄露等 |
| 逆向分析 | 抓取加密数据,分析算法逻辑,构造请求实现越权或自动化 |
| SRC/CTF | 小程序、APP类题目/漏洞挖掘的必备前置技能 |
