作为程序员、网络安全爱好者或者测试工程师,经常要分析数据包,但现在很多通信流量都是HTTPS,抓包打开一看:全都是密文怎么办?别急,今天咱就聊聊几种靠谱又简单的解密HTTPS流量的方法,保证你学完立刻能上手。
方法1:SSLKEYLOGFILE法
现在的浏览器(比如Chrome、Firefox)支持一个环境变量SSLKEYLOGFILE
,可以自动把生成的SSL秘钥写进文件里。有了秘钥,你就能用Wireshark直接解密抓到的数据包。
设置之后再次启动Chrome或Firefox浏览器,这时候会自动生成sslkey.log文件。
用Wireshark抓包,然后打开Preferences -> Protocols -> TLS,选择刚才生成的sslkey.log文件,就能轻松解密啦~
优点
:官方支持,解密效果稳定。
缺点
:需要浏览器主动配合,且只适合自己客户端的场景。
方法2:Fiddler代理法
Fiddler是经典的HTTP/HTTPS代理工具,通过自己签发证书充当中间人,分别跟客户端、服务器建立加密连接,从而解密HTTPS。
下载、安装Fiddler,并启动。
配置客户端(例如浏览器)使用Fiddler作为HTTP代理(默认127.0.0.1:8888)。
打开浏览器访问http://127.0.0.1:8888安装Fiddler的CA证书到客户端,一定要安装证书才能解密成功。
现在所有经过Fiddler的数据流量,就都是明文啦~
优点
:图形界面友好,上手简单易用。
缺点
:必须安装Fiddler证书,不适合分析无法配置代理的软件。
方法3:mitmproxy中间人攻击法
mitmproxy是一个开源的交互式中间人代理工具,用于拦截、检查、修改和重放 HTTP/HTTPS 流量。它支持多种运行模式(如常规代理、透明代理、反向代理等),并提供了强大的流量分析功能,包括实时查看请求/响应、修改数据、脚本自动化等。mitmproxy 广泛应用于安全测试、网络调试、隐私分析和软件开发等领域。其核心工具包括命令行界面(mitmproxy)、Web 界面(mitmweb)以及库模式(mitmdump),支持 Python 脚本扩展。
GitHub地址:https://github.com/mitmproxy/mitmproxy
mitmproxy 以透明代理模式运行时,可无缝拦截网络流量而无需客户端配置,结合自定义证书颁发机构(CA)还能解密 HTTPS 通信。它遵循 MIT 许可证开源,社区活跃,文档完善,是开发者、安全研究员和运维人员分析网络行为的首选工具之一。
使用方面和Fiddler类似,配置浏览器或系统HTTP/HTTPS代理为127.0.0.1:8080。
安装mitmproxy证书,同样访问mitm.it下载证书安装。
现在所有HTTPS流量在mitmproxy界面一览无余~
优点
:终端神器,可扩展能力强,极客范儿十足。
缺点
:命令行界面,对新手可能稍有门槛。
方法4:Burp Suite代理法
如果你还觉得不够,这里再送你一个强力工具——Burp Suite。
Burp Suite 是一个功能强大的网络漏洞扫描和安全测试平台,广泛用于渗透测试和 Web 应用安全评估。它提供代理拦截、爬虫扫描、漏洞检测(如 SQL 注入、XSS)、暴力破解及 API 测试等功能,支持手动和自动化安全审计。
Burp Suite本质上也是个代理工具,但它更专业,广泛用于渗透测试。
优点
:专业性极强,提供丰富插件和扩展能力。
缺点
:免费版有功能限制,专业版价格昂贵,且新手学习曲线较陡峭。
方法对比总结
方法 | 难易程度 | 适合人群 | 优点 | 缺点 |
---|---|---|---|---|
SSLKEYLOGFILE法 | 简单⭐️ | 开发、测试人员 | 官方支持,稳定 | 仅限浏览器端抓包 |
Fiddler代理法 | 简单⭐️⭐️ | 测试人员、前端开发 | 图形界面易用 | 必须安装证书代理 |
mitmproxy | 中等⭐️⭐️⭐️ | 技术爱好者、自动化 | 可扩展性强,极客风格 | 命令行操作稍复杂 |
Burp Suite | 偏难⭐️⭐️⭐️⭐️ | 渗透测试、安全人员 | 专业性极强 | 新手上手难,专业版贵 |
简单快速抓个包?直接用SSLKEYLOGFILE;
想要随手测试和调试?Fiddler是你的最佳伴侣;
热爱命令行折腾?mitmproxy就是为你准备的;
专业渗透、安全测试?那必须祭出Burp Suite!
温馨提醒
本文所述技术仅可用于:
-
自家网站调试
-
授权渗透测试
-
学习研究
非法使用后果包括但不限于:
-
收获银手镯一副
-
喜提包吃包住体验卡
-
登上社会新闻头条