fiddler解析ssl

来源:互联网 发布:硬盘播出系统 软件 编辑:程序博客网 时间:2024/05/19 22:07

在开发互联网应用的过程中,常常会设立或利用网络接口。为了调试对网络接口的使用,往往需要查看流入和流出网络接口的网络流量或数据包。“抓包工具”就是一类用于记录通过网络接口的数据的工具。

 

我们知道,网络协议是分层设计的,OSI模型将网络协议分为了7个层次。不同的抓包工具,可以在网络协议的不同层次上工作。常用的Wireshark就是一种在网络层上工作的抓包工具,不仅自带大量的协议分析器,而且可以通过编写Wireshark插件来识别自定义的协议。虽然Wireshark功能强大,但是却并不能解决所有的抓包问题,其原因在于:

 

  • Wireshark工作在网络层;如果计算机配置了IPSec传输层加密,则在网络层的流量都已经被加密,什么也看不到。

  • 当今大量网络接口使用HTTPS加密,Wireshark不能抓取到HTTPS流量的明文内容。

    

那么,如何抓取到HTTPS请求的明文内容呢?使用Fiddler就可以办到。

 

Fiddler是Eric Lawrence编写的HTTP抓包软件。Fiddler工作在应用层上,作为其他程序的HTTP代理服务器。它可以直接抓取并分析HTTP流量,也可以作为“中间人”抓取并分析HTTPS流量。

 

Fiddler抓取HTTPS流量

 fiddler的http、https的抓包功能非常强大,可非常便捷得对包进行断点跟踪和回放,但是普通的配置对于像招商银行、支付宝、陌陌这样的APP是抓不到包的,需要一些特殊的配置,本文把fiddler Android下https抓包的详细配置都罗列出来,供大家参考。

 

这里需要准备两台主机,一台用来开启fiddler 和 代理流量,另一台用来充当被代理端(可以是电脑、或手机)

 

首先要进行配置

wKiom1bUZO6ysZgZAABz23-bSV8526.png

选择 Fiddler options开始配置

 

wKioL1bUZYKTCdhVAABTGdtrihU559.png

勾选捕获HTTPS连接、解码HTTPS流量、忽略服务端证书错误

 

wKioL1bUZhHgD2FJAABbelicuPs249.png

运输远程主机连接

 

wKiom1bUZbTh2WeIAACUG3CGBvA520.png

开启远程连接功能后,可以使用命令查看下Fiddler监听的IP地址是不是0.0.0.0 ,如果不是那么可以重启Fiddler

 

 

下面就拿Android手机抓包举例 

Android 版本4 以后的系统在wifi连接高级选项中支持两种代理模式“无”“手动”。 

Android 5.x以后还支持另外个选项“自动配置”,可以写pac配置文件,自动代理需要代理的域名,话不多说。

 

手机打开wifi连接界面,长按wifi热点 打开“修改网络”

wKiom1bUakqiP7ofAAPQxyqyzX8299.jpg

 

wKiom1bUamORkDctAAPpTGZqWLc845.jpg

代理主机填写电脑端的ip  端口填写Fiddler默认监听的端口 8888

 

保存 连接。

 

手机端上安装Fiddler 根证书信任

wKiom1bUbPDhJKjeAALBQt_N7VY948.png

手机上用浏览器打开代理页面

 

wKiom1bUbRWi5Ry9AAMILpS1tP4969.png

页面最下方有个 根证书的连接  点击安装证书信任

 

wKiom1bUbVOADssiAAk6teY2Wik920.png

给这个用户证书命个名 然后确定就完成了

 

 

看效果

手机上打开登陆微博,然后看Fiddler的捕获页面

wKioL1bUbhDzAh_eAAQvhhipqe0705.png

https连接 已经可以看到URI了 ,右边可以看到HTTP报头。

 

好了可以抓Android包了, 但是也不一定所有app的https流量都可以抓,比如谷歌服务是基于https的通道流量,就无法解析。

还有一些应用并没有使用Android 的HTTP连接器,所以就无法应用到wifi设置中的代理配置。

当然我们在这里不讨论Android上的一些问题,主要讨论怎样使用Fiddler解 HTTPS流量。

最近正在学习JavaEE,如果有好的java教程,大家分享一下啊

0 0
原创粉丝点击