android 监听本机网络请求_fiddler如何抓取https请求实现fiddler手机抓包-证书安装失败100%解决...

一、HTTP协议和HTTPS协议。

(1) HTTPS协议=HTTP协议+SSL协议,默认端口:443

(2) HTTP协议(HyperText Transfer Protocol):超文本传输协议。默认端口:80,其中包含请求和响应两部分,其中请求包含:请求行、请求头、请求正文,响应包含:响应行、响应头、响应正文。

二、Fiddler截获HTTPS协议数据以及数字证书加密解密原理。

(1) 浏览器向百度发出https握手请求,被Fiddler截获,变成fidller向百度发出握手请求,百度将自己的SSL证书(由CA颁发,里面包含了百度的公钥以及认证中心签名及有效期等信息)进行返回,SSH数字证书被Fiddler截获,Fiddler用CA的公钥解开百度的证书,拿到百度公钥。

(2) Fiddler修改SSL证书相关信息(把:把百度的公钥替换成自己的公钥,把百度证书颁发机构修改成自己颁发等),以达到冒充百度的目的,然后用自己的私钥重新加密百度的SSL数字证书发送给浏览器。

(3) 由Fiddler的根证书生成器FiddlerCertMaker.exe生成Fiddler的根证书并加入浏览器"受信任的根证书颁发机构"列表,所以浏览器可以用Fiddler根证书中的公钥解密伪造的百度SSL数字证书。得到冒充的百度公钥(实际是Fiddler的公钥)。

(4) 浏览器生成随机对称秘钥,用冒充的百度公钥(实际是Fidller的公钥)加密后发出,被Fiddler截获,Fiddler用自己私钥解开带有随机对称密钥的密文,获得通讯的对称秘钥。Fiddler用百度的公钥加密对称秘钥,然后传给百度。

(5) 百度用自己私钥解开对称秘钥,这样双方就能使用对称秘钥加密传输了。

(6) Fiddler收到百度发来的网页密文,由于Fiddler也保存了对称秘钥,所以它可以解开密文,这样我们就能使用Fiddler看到加密的https的明文了,然后Fiddler再次用对称秘钥加密发送给浏览器。浏览器向百度发送密文时也被Fiddler截获,截获后使用对称秘钥解密并显示在Fiddler,然后Fiddler使用对称密钥加密后再发送给百度。如此循环往复。

三、Fiddler截获https请求实操。

前言:理解https协议加密解密原理之后,以下操作能100%的解决fiddler所有证书问题。

(1) 清理环境(首次安装Fiddler不需要清理)

1、卸载Fiddler软件以及根证书生成器Fiddler2 CertMaker。

2、清除C:UsersAdministratorAppDataRoamingMicrosoftCryptoRSA 目录下所有的RSA算法文件,此算法文件和非对称公钥密钥加密相关。

3、清除电脑上的根证书,WIN+R快捷键,输入: certmgr.msc, 然后回车,查找所有fiddler证书,然后删除。

4.清除浏览器上的证书文件 ,以谷歌浏览器为例说明,在浏览器上输入: chrome://settings/,进入[高级]->[管理证书],有"受信任的根证书颁发机构"列表。此处需要仔细查找带有DO_NOT_TRUST_FiddlerRoot的字样,并删除。

(2) 安装并配置Fiddler抓取Https数据报文。

1.下载并安装fiddler,官网下载地址:https://www.telerik.com/download/fiddler

2.下载并安装Fiddler证书生成器,官网下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

3. 打开Fiddler,点击菜单栏中的Tools—>Options,选择HTTPS页签。勾选Decrypt HTTPS CONNECTs(解密https连接),Fiddler证书生成器会自动判断本机是否安装Fiddler证书,没有则弹出如下证书安装页面。点击”Yes”按钮,在新弹出的窗口中再点击”确定”后则Fiddler证书安装完成。接下来Fiddler就可以抓取Https的数据报文。

671305b1b6ac304353f1953ba9885c94.png

(3) Fiddler抓取手机端的https协议数据报文。

1、打开Fiddler,点击菜单栏中的Tools—>Options,选择Connections页签。勾选Allow remote computers connnect(允许外部电脑连接)。

8074e6bc82c49db11584900559747648.png

2、保持android手机和电脑在同一网段。如连接同一无线。

3、打开android手机的“设置”->“WLAN”,找到你要连接的无线网络并点击,弹出网络设置对话框,在“代理”处选择“手动”,在“主机名”输入框后面输入127.0.0.1,在“端口”输入框后面输入8888,然后点击“保存”按钮。

4、启动android设备中的浏览器访问百度首页或打开被测App,在fiddler中可以看到抓取到的数据报文了。

四、总结

如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣请拉到最上面关注笔者的名字!

一箭三雕:如果你觉得本文对你有帮助,请关注,赞同,分享三连!谢谢!
作者出处:逍遥子:fiddler如何抓取https请求实现fiddler手机抓包-证书安装失败100%解决
转载声明:欢迎转载,但未经作者同意请保留此段声明,并在文章明显位置给出原文链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言笔试题总结2

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)算法的时间复杂度是指_______。A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法…

C#的四舍五入函数

2019独角兽企业重金招聘Python工程师标准>>> 1.四舍六入(国外的四舍五入) Math.Round(num); 2.四舍五入 Math.Round(num,MidpointRounding.AwayFromZero); 转载于:https://my.oschina.net/CrazyBoy1024/blog/746268

C语言笔试题总结3

4. static有什么用途?(请至少说明两种)1.限制变量的作用域2.设置变量的存储域7. 引用与指针有什么区别?1) 引用必须被初始化,指针不必。2) 引用初始化以后不能被改变,指针可以改变所指的对象。2) 不存…

【BZOJ2243】 [SDOI2011]染色

Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成&am…

jquery easyui DataGrid 数据表格 属性

扩展自 $.fn.panel.defaults &#xff0c;用 $.fn.datagrid.defaults 重写了 defaults 。 依赖 panelresizablelinkbuttonpagination用法 1. <table id"tt"></table> 1. $(#tt).datagrid({ 2. url:datagrid_data.json, 3. columns:[…

C语言笔试题总结

1. 下面这段代码的输出是多少(在32位机上). char *p; // 4 char *q[20]; // 80 char *m[20][20]; // 1600 int (*n)[10]; // 4 struct MyStruct { char dda; double dda1; int type ; }&#xff1b; MyStruct k; // 24 printf("%d %d %d %d",sizeof(p),siz…

第五次作业

学习时间新增代码行博客发表量知识总结 第十周5801HTML5 C和C 一般用于服务端的服务程序开发&#xff0c;硬件编程开发&#xff0c;系统等等大量框架要用到的。JAVA&#xff0c;学好这个可以开发移动设备程序&#xff0c;JSP网页程序。C#&#xff0c;学了这个可以开发Winform&a…

数字信号处理的fpga实现_FPGA数字信号处理:通信类I/Q信号及产生

大侠好&#xff0c;欢迎来到FPGA技术江湖&#xff0c;江湖偌大&#xff0c;相见即是缘分。大侠可以关注FPGA技术江湖&#xff0c;在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源&#xff0c;或者一起煮酒言欢。大侠好&#xff0c;“宁夏李治廷”再一次和各位见…

iic通讯协议

IIC总线 一般串行数据通讯都有时钟和数据之分,有异步和同步之别. 有单线,双线和三线等. I2C肯定是2线的(不算地线). I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了. I2C的原则是: 在SCL1(高电平)时,SDA千万别忽悠!!! 否则,SDA下跳则"判罚"为&…

使用 Python 切割图片

刚好我有张 PNG 图片需要均匀切割&#xff0c;刚好我不会 PhotoShop&#xff0c;刚好我想用 Python 来练练手。 于是撸袖子码脚本。 import os from PIL import Imagedef splitimage(src, rownum, colnum, dstpath):img Image.open(src)w, h img.sizeif rownum < h and co…

python数据分析知识点_Python数据分析--Pandas知识点(三)

本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. 下面将是在知识点一, 二的基础上继续总结. 前面所介绍的都是以表格的形式中展现数据, 下面将介绍Pandas与Matplotlib配合绘制出折线图, 散点图, 饼图, 柱形图, 直方图等五大基本图形. Matplotlib是python…

SPI通讯协议

SPI&#xff1a;高速同步串行口。是一种标准的四线同步双向串行总线。 SPI&#xff0c;是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM&#xff0c;FLASH&#x…

基于MVVM的知乎日报应用安卓源码

使用data binding , dagger2 , retrofit2和rxjava实现的&#xff0c;基于MVVM的知乎日报APP运行效果&#xff1a; <ignore_js_op> 使用说明&#xff1a; 项目结构android data binding来实现MVVM。dagger2来完成依赖注入。retrofit2rxjava实现restful的http请求。第三方类…

F#创建者Don Syme谈F#设计原则

在.Net Fringe 2016大会上&#xff0c;F#创建者Don Syme谈了他对F#现状的看法以及F#的二元性。F#是以一个为面向对象语言构建的运行时为基础构建的函数式语言。\\F#是2010年发布的&#xff0c;遵循开源许可协议。F#比.Net更早地踏上了开源之路&#xff0c;C#和.Net在2015年才开…

php签入html出来的影响seo吗_搜索引擎优化_SEO必备6大技能+SEO误区讲解!

大家好&#xff0c;我是逆冬&#xff0c;今天来分享一下实战SEO需要掌握什么样的技能以及SEO知识误区&#xff0c;本篇文章仅代表逆冬本人几年的经验、不见得适合每一个SEOer!下面就让逆冬本人来分析一下实战型SEO到底需要掌握什么技能。第1点&#xff1a;SEO需要不需要熟练掌握…

编写linux驱动程序步骤

一、建立Linux驱动框架&#xff08;装载、卸载Linux驱动&#xff09; Linux内核在使用驱动时首先要装载驱动&#xff0c;在装载过程中进行一些初始化动作&#xff08;建立设备文件、分配内存等&#xff09;&#xff0c;在驱动程序中需提供相应函数来处理驱动初始化工作&#xf…

一种M2M业务的架构及实现M2M业务的方法

http://www.cnblogs.com/coryxie/p/3849764.html 技术领域 [0001] 本发明涉及通信技术领域&#xff0c;尤其涉及一种M2M业务的架构及实现M2M业务的方法。 背景技术 [0002] 随着通信技术的飞速发展以及通信技术与互联网技术的进一步融合&#xff0c;移动业务以及移动互联网技术普…

第二章 mybatis使用注解实现in查询(mysql)

mybatis实现in查询&#xff0c;两种方法&#xff1a; xml形式&#xff08;推荐&#xff09;注解方式&#xff08;个人喜欢注解&#xff0c;但是in场景可能不太适合注解&#xff09;代码&#xff1a; 1 Select("<script>" 2 "SELECT ID…

python面试代码题_python面试基础篇80题

1.为什么学习python?3.Python和Java、PHP、C、C#、C等其他语言的对比&#xff1f; C语言由于其底层操作特性和历史的积累&#xff0c;在嵌入式领域是当之无愧的王者。 PHP跨平台&#xff0c;性能优越&#xff0c;跟linux/unix结合比跟windows结合性能强45%,开发成本低,php5已经…

主设备号与次设备号以及申请

一个字符设备或者块设备都有一个主设备号和次设备号。主设备号和次设备号统称为设备号。主设备号用来表示一个特定的驱动程序。次设备号用来表示使用该驱动程序的各设备。例如一个嵌入式系统&#xff0c;有两个LED指示灯&#xff0c;LED灯需要独立的打开或者关闭。那么&#xf…