代理和抓包
2026/5/29工具通用工具工具通用工具代理抓包大约 3 分钟
代理和抓包
是什么
代理和抓包是 Web 安全的基础能力。浏览器请求通过代理工具转发后,可以观察、修改、重放请求。
常见工具:
- Burp Suite
- 浏览器开发者工具
- curl / httpie
- Wireshark
- mitmproxy
安装与配置
最常见配置:
HTTP Proxy: 127.0.0.1
Port: 8080Burp 默认监听:
127.0.0.1:8080浏览 HTTPS 站点需要安装 Burp CA 证书。
基本用法
浏览器代理
可以用浏览器代理设置,或使用 SwitchyOmega / FoxyProxy 之类扩展管理代理。
curl 走代理
curl -x http://127.0.0.1:8080 http://target.comhttpie 走代理
http --proxy=http:http://127.0.0.1:8080 http://target.comPython requests 走代理
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
r = requests.get(url, proxies=proxies, verify=False)更多代理工具
mitmproxy
# 安装
pip install mitmproxy
# 启动
mitmproxy
mitmweb # Web 界面
mitmdump # 命令行模式
# 使用脚本
mitmdump -s script.pymitmproxy 脚本
from mitmproxy import http
def request(flow: http.HTTPFlow) -> None:
if "target.com" in flow.request.pretty_host:
print(f"Request: {flow.request.method} {flow.request.pretty_url}")
def response(flow: http.HTTPFlow) -> None:
if "flag" in flow.response.text:
print(f"Found flag: {flow.response.text}")Charles Proxy
商业代理工具
支持 Windows/macOS/Linux
图形化界面
支持 SSL 代理Fiddler
Windows 代理工具
免费版本可用
支持 HTTPS 解密
支持脚本扩展Squid 代理
# 安装
sudo apt install squid
# 配置 /etc/squid/squid.conf
http_port 3128
acl localnet src 192.168.0.0/16
http_access allow localnet
# 启动
sudo systemctl start squid浏览器开发者工具
Network 标签
功能:
- 查看所有请求
- 查看请求/响应头
- 查看请求/响应体
- 过滤请求类型
- 查看时间线
快捷键:
F12 或 Ctrl+Shift+I
Ctrl+Shift+Delete 清除缓存Console 标签
// 发送请求
fetch('http://target.com/api').then(r => r.text()).then(console.log)
// XMLHttpRequest
var xhr = new XMLHttpRequest();
xhr.open('GET', '/api');
xhr.onload = function() { console.log(xhr.responseText); };
xhr.send();Application 标签
功能:
- 查看 Cookie
- 查看 LocalStorage
- 查看 SessionStorage
- 查看 IndexedDB扩展工具
SwitchyOmega: 代理管理
FoxyProxy: 代理管理
HackBar: 快速编码解码
Wappalyzer: 技术识别
Cookie Editor: Cookie 编辑CTF常用技巧
先保存正常请求
做 Web 题不要急着改 payload。先保存正常请求,记录:
URL
Method
Cookie
Content-Type
请求体
响应码
响应长度只改一个变量
一次只改一个参数,观察响应变化,才能建立因果关系。
脚本复现前先抓包
先用 Burp 确认请求完整,再用 curl、httpie 或 Python 复现。
请求记录模板
=== 请求 ===
GET /api/user?id=1 HTTP/1.1
Host: target.com
Cookie: session=abc123
User-Agent: Mozilla/5.0
=== 响应 ===
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 123
{"id":1,"name":"admin"}对比请求
正常请求 vs 异常请求
- 哪些参数不同
- 响应有什么变化
- 状态码是否变化
- 响应长度是否变化代理链
# 多层代理
curl -x http://proxy1:8080 -x http://proxy2:8080 http://target.com
# 使用 proxychains
proxychains curl http://target.com常见问题
HTTPS 报证书错误
安装代理工具 CA 证书,或在命令行临时关闭校验。真实环境不要随意关闭证书校验。
浏览器没流量进 Burp
检查代理地址、监听端口、浏览器是否绕过 localhost、系统代理是否被覆盖。
脚本请求和浏览器不一样
检查 Cookie、Header、CSRF Token、Content-Type 和重定向。
代理配置不生效
1. 检查代理端口是否正确
2. 检查代理是否启动
3. 检查浏览器代理设置
4. 检查系统代理设置
5. 检查防火墙设置无法抓取 HTTPS
1. 安装 Burp CA 证书
2. 浏览器信任证书
3. 检查 SSL/TLS 版本
4. 使用 --insecure 参数关联
- HTTP请求与响应
- Cookie与Session
- Web题的观察顺序
- Burp Suite
- curl
- httpie