利用Fiddler 解SSL加密 数据包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Fiddler 解SSL加密 数据包相关的知识,希望对你有一定的参考价值。

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


我们知道,网络协议是分层设计的,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 和 代理流量,另一台用来充当被代理端(可以是电脑、或手机)


首先要进行配置

技术分享

选择 Fiddler options开始配置


技术分享

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


技术分享

运输远程主机连接


技术分享

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



下面就拿Android手机抓包举例 

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

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


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

技术分享


技术分享

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


保存 连接。


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

技术分享

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


技术分享

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


技术分享

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



看效果

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

技术分享

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


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

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

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

本文出自 “Professor哥” 博客,请务必保留此出处http://professor.blog.51cto.com/996189/1746183

以上是关于利用Fiddler 解SSL加密 数据包的主要内容,如果未能解决你的问题,请参考以下文章

Fiddler:程序员必备的网络抓包调试工具

Python爬虫-02:HTTPS请求与响应,以及抓包工具Fiddler的使用

HttpCannary根证书未安装,无法抓取SSL,TLS加密数据包问题解决方法

HttpCannary根证书未安装,无法抓取SSL,TLS加密数据包问题解决方法

HttpCannary根证书未安装,无法抓取SSL,TLS加密数据包问题解决方法

使用fiddler+模拟器进行APP抓包