小记HTTPS明文抓包
发布于2025-06-07 00:19:25,更新于2025-06-14 16:27:55,标签:http tcp 文章会持续修订,转载请注明来源地址:https://meethigher.top/blog在日常中经常需要用到TCP/UDP网络抓包,我开发调试中下面这两个工具是用的最多的。
这两款工具的使用,可以参考这篇文章。但是在逆向的时候,这两款工具,相对来说就比较难用了。
本文主要记录在Windows上,如何使用以下免费的工具,抓包HTTPS明文
- mitmproxy:免费、开源、Windows/Linux/macOS
- FiddlerClassic:免费、不开源、Windows专用
一、mitmproxy
1.1 安装
下载mitmproxy,一路无脑下一步安装。他会安装三个工具。
mitmproxy
:提供交互式命令行界面mitmweb
:提供基于浏览器的 GUImitmdump
:提供非交互式终端输出
1.2 修改脚本执行策略
安装完成后,win+r
输入powershell
,然后ctrl+shift+enter
以管理员运行,并执行如下命令,把脚本的执行策略由默认修改为无限制。
1 | # 查看当前策略 |
1.3 如何抓包
1.3.1 设置环境变量
通过环境变量,临时设置HTTP/HTTPS请求代理。这仅适用于部分情况。
Linux
1 | export http_proxy=http://127.0.0.1:8080 |
Windows
1 | set http_proxy=http://127.0.0.1:8080 |
1.3.2 透明代理(底层拦截所有传输层流量)
运行mitmweb,配置透明代理即可。
1.4 配置CA证书
1.4.1 系统证书(适用大部分)
首先,运行mitmproxy,然后关闭即可。之后win+r
输入%userprofile%/.mitmproxy
在当前目录下管理员启动终端,执行certutil -addstore root mitmproxy-ca-cert.cer
,即可安装证书
如果没有命令的话,也可以按照如下图,手动安装。
这样就可以把证书安装到系统根证书里了,这对于大部分程序都好使。比如浏览器就可以明文抓包了。
1.4.2 单独配置证书
但是一些工具,是不走系统根证书的。比如curl、node、java等。他们自己有独立的证书库,因此在使用时,需要指定一下。
指定curl使用证书
1 | curl --proxy 127.0.0.1:8080 --cacert C:/Users/meethigher/.mitmproxy/mitmproxy-ca-cert.pem https://meethigher.top/whoami |
指定node使用证书
1 | set NODE_EXTRA_CA_CERTS=C:\Users\meethigher\.mitmproxy\mitmproxy-ca-cert.pem |
给java的证书库添加证书
1 | "D:\3Develop\Java\jdk-21.0.1\bin\keytool" -importcert -keystore "D:\3Develop\Java\jdk-21.0.1\lib\security\cacerts" -storepass changeit -file "C:\Users\meethigher\.mitmproxy\mitmproxy-ca-cert.pem" -alias mitmproxy |
其他比如安卓等配置CA证书的细节,可以参考Certificates
之后就可以正常抓包了,比如我在使用SpringAi的框架时,想知道HTTPS请求体是啥,就直接抓包即可。
二、FiddlerClassic
下载FiddlerClassic,一路无脑下一步安装。
之后Tools-HTTPS-勾选Decrypt HTTPS Traffic
,即可安装对应的根证书
三、证书卸载
控制面板-管理用户证书
,右键删除即可