使用wireshark抓取python发起的https请求包

前言

之前有调研过 wireshark 抓取 https 报文,核心就是 SSLKEYLOGFILE 配置

有从客户端 chrome 发起抓包的,有从服务端 wordpress 发起抓包

我理解是不管什么语言发起的 https 请求,只要配置了 SSLKEYLOGFILE 就能正常抓取

并且在 go 代码中通过添加 SSLKEYLOGFILE 配置,可以实现在 wireshark 抓取其发起的 https 请求报文

但是 python 对 https 却不是这样的,这里 python 代码使用的库是 requests

通过 chatgpt 的回复了解到,是 requests 底层的封装库就没有启用对 SSLKEYLOGFILE 的支持

抓包思路

既然尝试修改 python 代码配置 SSLKEYLOGFILE,目前是没办法抓取到其发起的 https 请求报文

那么可以通过 mitmproxy 部署一个代理,然后 python 通过 mitmproxy 代理,发起 https 请求

再使用 wireshark 对 loopback 网卡进行抓包,就能正常抓到 https 报文了

安装mitmproxy

安装包可以从 官方地址 进行下载,下载后双击安装就可以了,安装后启动界面如下

默认是监听本地的 8080 端口

wireshark抓包

启动 wireshark 软件,在启动页面选择 lookback 网卡进行抓包

python发起请求

python 代码中发起请求的时候,设置本地代理

python 复制代码
import requests

proxies = {
    'http': 'http://127.0.0.1:8080',
    'https': 'http://127.0.0.1:8080'
}
response = requests.get('https://www.google.com', proxies=proxies, verify=False)
print(response.status_code)

本地运行 python 的请求代码,从 mitmproxy 软件上就可以看到有请求记录了

在这里 mitmproxy 扮演的是中间人的角色,在本地运行时会启动一个 HTTP 代理服务器

在 wireshark 中使用 http 进行过滤,就可以看到 python 发起的 https 请求包了

相关推荐
御承扬15 小时前
编程素养提升之EffectivePython(Builder篇)
python·设计模式·1024程序员节
chenchihwen15 小时前
AI代码开发宝库系列:FAISS向量数据库
数据库·人工智能·python·faiss·1024程序员节
KAI丶16 小时前
【Https】Received fatal alert: internal_error
https·1024程序员节
AI视觉网奇17 小时前
json 可视化 2025 coco json
python·1024程序员节
mit6.82417 小时前
[nanoGPT] ChatGPT 的 LLM 的全栈实现 | 快速上手
python
DKunYu17 小时前
2.1线性回归
pytorch·python·深度学习·1024程序员节
大飞记Python17 小时前
实战分享:一键自动化下载指定版本的Chrome及Chromedriver(附Python源码)
chrome·python·自动化
jfqqqqq17 小时前
使用pem和key文件给springboot开启https服务
网络协议·http·https
程序员杰哥18 小时前
如何使用Postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·python·测试工具·jenkins·postman·1024程序员节
老歌老听老掉牙19 小时前
参数曲线切向量与叉乘向量的精确计算与分析
python·sympy·1024程序员节