Linux命令行下能否获取Firefox DevTools中的数据?
核心思路
先模拟触发生成认证Cookies的POST请求(比如登录请求),将Cookies保存到本地文件,再用该Cookies文件发起目标页面的请求。
1. 模拟POST请求获取并保存Cookies
用curl发送和浏览器一致的POST请求,将响应返回的Cookies存入本地文件:
# 替换为实际的登录接口URL、请求参数和请求头 curl -c cookies.txt \ -X POST \ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=你的账号&password=你的密码" \ https://目标网站域名/login
- 参数说明:
-c cookies.txt:将响应中的Cookies写入cookies.txt文件-X POST:指定请求方法为POST-H:添加请求头(需和浏览器DevTools中捕获的请求头一致,比如User-Agent、Referer等)-d:POST请求的表单数据(需和浏览器中提交的参数完全匹配)
2. 使用保存的Cookies发起目标请求
加载已保存的Cookies文件,发起目标页面的请求:
curl -b cookies.txt \ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \ https://目标网站域名/目标页面路径
- 参数说明:
-b cookies.txt:从cookies.txt文件中加载Cookies
关键注意事项
- 匹配浏览器请求信息:所有请求头、表单参数必须和DevTools中捕获的完全一致,比如部分网站需要
Referer、X-Requested-With等特殊请求头,遗漏会导致认证失败。 - 处理CSRF令牌:如果网站存在CSRF验证,需要先GET登录页面提取令牌,再带入POST请求:
# 提取CSRF令牌 csrf_token=$(curl -s https://目标网站域名/login | grep -o 'name="csrf_token" value="[^"]*"' | cut -d '"' -f 4) # 携带令牌发送POST请求 curl -c cookies.txt \ -X POST \ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=你的账号&password=你的密码&csrf_token=$csrf_token" \ https://目标网站域名/login - 调试排查:添加
-v参数(如curl -v -c cookies.txt ...)查看详细请求响应,定位认证失败原因。
内容的提问来源于stack exchange,提问作者Thend
相关产品推荐
相关产品推荐

