fiddler https 抓包怎么抓https的包

零基础学习 Fiddler 抓包改包原文链接:&
一、Fiddler
Fiddler是一款HTTP协议调试代理工具,它能够抓取记录本机所有HTTP(S)请求,通过设置断点等方法我们可以任意修改进出Fiddler的数据(cookie,html,js,css)完成测试。其原理如下图,我们仅需要修改Proxy中收到的数据就可以模拟客户端和服务器的交互,完成一系列Mock测试。
关于Fiddler的安装、配置方法KM上教程很多,这里就不再介绍。
如果需要抓取本机请求,只需要启动程序并确保左下角为Capturing状态即可
如果需要抓取移动端请求,则需要在移动终端上指定代理服务器为Fiddler所在主机IP(需要处于同一网络),端口默认8888
Fiddler配置
Android中网络配置
如果需要抓取HTTPS请求,需要在Fiddler中勾选菜单栏Tools选项
勾选如下选项:
导出证书并安装 移动终端可以在浏览器中访问127.0.0.1:8888来安装证书。如果不安装证书的话只能抓取HTTP请求。
1.3.修改数据
Fiddler提供修改数据的方法有很多,常用的如下AutomaticBreakpoint命令行设置断点
AutoResponsder
FiddlerScript&(Customize Rules)
后面将在实例中为大家介绍各个方法的具体使用方法。
二、测试实例
2.1. 需求介绍
如图所示,App中的一个页面向用户展示天气信息,具体规则如下:
拉取时机:进入页面后刷新天气信息数据源:& Yahoo接口显示数据:温度信息、天气icon、出行提示、风速、能见度……从测试角度看这个功能的测试难度不大,问题是如何快速的将全部天气信息匹配的icon和出行提示验证完毕。
2.2.测试前分析
通过分析接口和客户端代码了解到,客户端向服务器请求指定城市天气信息,在服务器返回的天气信息中各类天气状况由code值表示(对应关系如图1-1),数值对应的天气图标如图1-2.
图1-2因此在测试中我们只需要让客户端接收到指定code值的天气数据就可以完成全部验证,所以先用Fiddler抓包看下接口的返回数据。方法如前文:首先PC上开启Fiddler,其次在手机中配置代理,接下来我们还要在手机浏览器中访问127.0.0.1:8888来安装证书(本例中接口为HTTPS请求),最后客户端触发下请求就OK了。
可以看出,红框内圈出的这一部分就是我们需要修改的数据啦。下面我们就采用各种手段来Mock吧。
2.3.修改数据
AutomaticBreakpoint
如果在工作中需要对某一个请求进行操作,最简单的方法莫过于使用Fiddler的这个功能
默认情况下状态为Disabled,根据需要我们可以选择开启不同的断点
Before Requests:向服务器发起请求前打中断,用以修改请求内的数据。
After Responses:&在服务器返回数据后中断,用以修改响应数据。
我们的用例中需要修改客户端收到的数据,因此勾选After Respnses即可。
注意:使用此功能需要正确使用Filter,否则Fiddler抓到的所有请求的会发生中断。
所有的设置都打开后就可以进行测试了,在Fiddler抓到返回数据后发生中断时我们手动将所有天气信息(code值)更改为龙卷风
修改完毕后点击Run to Completion 向客户端返回数据。接下来就是检查结果了。
结果符合预期,页面中的所有天气icon均为龙卷风通标。
以上便是自动打断点的使用方法,唯一不足的地方是当你需要查看其它请求的时候,已配置的Filter可能导致它们无法展示在Fiddler中,不过没关系,看看下面这种方法。
命令行设置断点
为了方便用户使用,Fiddler还提供了一个命令行接口,通过一系列内置命令可以大大的提高使用效率,这里我们只关注断点相关的几个常用命令,其他的内容可以通过help查询。 本例中我们关闭Filter并使用bpafter进行中断
键入断点后进入天气也触发天气信息拉取
这样一条熟悉的中断请求就出现在我们面前了,后面的操作跟之前一样,修改数据返回即可。
注:清除断点输入断点命令符不接参数即可,如:bpafter对于熟悉Fiddler的同学这种方法更灵活,可以快速的对需要监控的数据打点操作。
AutoResponsder
AutoResponsder这个功能基本原理就是替换线上文档,例如一个js/css请求,我们可以设置规则将返回的文件替换成本地文件。使用方法也很是简单,只需要在AutoResponder插件内添加规则即可。
在我们这个测试用例中,只需要创建规则匹配指定字符串,然后将修改好的响应文件添加进去,同时勾选上方三个复选框即可。一切搞定之后,当客户端发起请求后Fiddler会将本地构造的文件(如图)作为response返回给客户端完成测试
这种方法操作简单,一劳永逸,对于数据量改动比较大的场景较为适用。
FiddlerScript(Customize Rules)
前面的方法对于Mock数据来讲尽管够用,但总感觉有所些欠缺:人工介入太多,不能自动替换数据也无法通过数据驱动来进行测试。幸好,Fiddler提供了这样一个FiddlerScript插件,通过它可以编辑脚本文件实现自定义规则的实现。
FiddlerScript使用JScript语言(不是JS)需要单独安装后才可以使用
http://doc.51windows.net/jscript5/?url=/jscript5/dir.htm
http://www.telerik.com/download/fiddler/fiddlerscript-editor
安装完毕后重启点击【Fiddler Script】tab即可
可以看到,脚本中已经预先设置好了这些接口,我们只需要在其中定义自己需要的规则就可以了。
&第一种方法&
我们可以向下面这样将直接替换数据中的字符串来进行测试
再次发送请求后收到的数据将自动修改(之前的 code=”23” 变更为code=”1” test=”23”)
&第二种方法&
也可以向下面这样,当收到服务器响应时弹出提示框动手动输入数据
第三种方法
当然最建议的一种方式还是搞成数据驱动:
①&&&创建一个txt文件按行存储测试用例
②&&&脚本里读取文件信息,此处的getCurrentTestCase方法是自己实现的,功能就是计算出第一个未标注“done”的数据作为当前需要替换的数据,并在结束时做上标记。这样一来,系统中所有的请求信息将按照预先设计好的顺序Mock
③&测试同学按照预先设计好的用例检查结果就可以了。
这是一个很小的例子,但足以说明它强大的扩展性。对于测试工作而言FiddlerScript更像是一种粘合剂,它可以把手机、测试数据、执行脚本等测试中参与的一切粘合在一起,让测试更便捷,让自动化测试更强大。
Fiddler除以上介绍的这些Mock数据的功能外还有很多其他用途,如域名的重定向、API的测试,这里就不一一列举。但根据我们以往的经验,如果能结合我们在其他领域的研究和探索,肯定还能有更深更广的应用。
【TMQ新书专栏】https://weidian.com/?userid=
版权所属,禁止转载相关热门文章Ctrl or ? + Enter评论<div class="like-count align-center" data-v-1b7查看: 6964|回复: 6
请教fiddler抓https包的问题
阅读权限30
结帖率: (1/4)
各位大神&&用fiddler抓https的包按教程设置了fiddler的https选项&&然后手机也安装了192.168.1.105:8888下载的证书&&然后fiddler和手机都重启了 怎么抓https包还是显示Tunnel to 啊 哪里会出问题呢?
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至
可获得加分喔。友情提醒:本版被采纳的主题可在
帖子申请荣誉值,获得 1点 荣誉值,荣誉值可兑换终身vip用户组哦。快捷通道: →
阅读权限180
签到天数: 2 天结帖率: (72/73)
fiddler的端口和手机代理设置的端口都一样吗?
您可以选择打赏方式支持他
阅读权限165
签到天数: 1 天结帖率: (14/18)
用模拟器抓包吧& &毕竟在PC上好弄!
您可以选择打赏方式支持他
阅读权限30
结帖率: (1/4)
fiddler的端口和手机代理设置的端口都一样吗?
一样啊 抓http的包没问题
您可以选择打赏方式支持他
阅读权限120
结帖率: (18/20)
http://kb.cnblogs.com/page/130367/&&希望能帮到你
您可以选择打赏方式支持他
阅读权限10
我也遇到这个问题了,提示是服务器提交的证书无效,指向了一个不同的host。
您可以选择打赏方式支持他
阅读权限10
高大上手机用户
fiddler抓https显示Tunnel to谁可以帮我解决 有赏服务。
您可以选择打赏方式支持他
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,QQ: ,邮箱:@b.qq.com
Powered by
粤公网安备 252、选择Connections选项卡,选中"Allow remote computers to connect".&是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来3、端口号是:8888,另外fiddler一定要重启才有效。4、检查证书是否安装成功,打开Internet选项 -&内容-&证书,如下看到有DO_NOT_TRUST_FiddlerRoot字样,恭喜fiddler设置成功了二、配置1、确认电脑上的ip,运行-cmd,然后输入ipconfig,确认电脑上的ip,然后在手机同一网络给手机设置代理,端口号是fiddler上设置的端口号,如下图是配置代理,安卓基本一样,就省略了图。2、访问网页输入代理IP和端口,如192.168.31.111:8888 ,下载Fiddler的证书,点击下图FiddlerRoot certificate,安卓、ios都如下图,点击安装即可3、安卓完了证书,用手机访问应用就可以抓到https的请求了。22:10 提问
fiddler抓不到https包
我已经在 Options 的 HTTPS 勾选了所有的项目,也点击了 Trust Root Certificate,并且也确认了。我按照同样的方法在别的电脑(也是win7 64位)是可以抓到https包的,但是在我的电脑就不行,望大神解救。以下是fiddler的log信息。
22:09:04:4317 /Fiddler.CertMaker& Invoking CertEnroll for Subject: CN=*.dec.sitefinity.com, O=DO_NOT_TRUST, OU=C Thread's ApartmentState: MTA
22:09:04:4337 !ERROR: Failed to generate Certificate using CertEnroll. System.Reflection.TargetInvocationException 调用的目标发生了异常。 & CertEnroll::CX509PrivateKey::put_ProviderName: 指定了无效的提供程序。 0x (-)
22:09:04:4337 !Fiddler.CertMaker& Failed to create certificate for '*.dec.sitefinity.com'.
22:09:04:4357 /Fiddler.CertMaker& Root C private key in container '7b90a71bfc56faed6df9a_d2bcced7-cfdf-46df-84d1-e810a6be5d60'
22:09:04:4357 !Fiddler.CertMaker& Tried to create cert for '*.dec.sitefinity.com', but can't find it from thread 132!
22:09:04:4357 fiddler.https& Failed to obtain certificate for api.dec.sitefinity.com due to Certificate Maker returned null when asked for a certificate for api.dec.sitefinity.com
22:09:28:8741 HTTPSLint& Warning: ClientHello record was 508 bytes long. Some servers have problems with ClientHello's greater than 255 bytes.
22:09:28:8811 /Fiddler.CertMaker& Invoking CertEnroll for Subject: CN=*.baidu.com, O=DO_NOT_TRUST, OU=C Thread's ApartmentState: MTA
22:09:28:8821 !ERROR: Failed to generate Certificate using CertEnroll. System.Reflection.TargetInvocationException 调用的目标发生了异常。 & CertEnroll::CX509PrivateKey::put_ProviderName: 指定了无效的提供程序。 0x (-)
22:09:28:8821 !Fiddler.CertMaker& Failed to create certificate for '*.baidu.com'.
22:09:28:8851 /Fiddler.CertMaker& Root C private key in container '7b90a71bfc56faed6df9a_d2bcced7-cfdf-46df-84d1-e810a6be5d60'
22:09:28:8851 !Fiddler.CertMaker& Tried to create cert for '*.baidu.com', but can't find it from thread 162!
22:09:28:8851 fiddler.https& Failed to obtain certificate for hm.baidu.com due to Certificate Maker returned null when asked for a certificate for hm.baidu.com
22:09:35:0995 HTTPSLint& Warning: ClientHello record was 508 bytes long. Some servers have problems with ClientHello's greater than 255 bytes.
22:09:35:1055 /Fiddler.CertMaker& Invoking CertEnroll for Subject: CN=*.gcp.gvt2.com, O=DO_NOT_TRUST, OU=C Thread's ApartmentState: MTA
22:09:35:1085 !ERROR: Failed to generate Certificate using CertEnroll. System.Reflection.TargetInvocationException 调用的目标发生了异常。 & CertEnroll::CX509PrivateKey::put_ProviderName: 指定了无效的提供程序。 0x (-)
22:09:35:1085 !Fiddler.CertMaker& Failed to create certificate for '*.gcp.gvt2.com'.
22:09:35:1125 /Fiddler.CertMaker& Root C private key in container '7b90a71bfc56faed6df9a_d2bcced7-cfdf-46df-84d1-e810a6be5d60'
22:09:35:1125 !Fiddler.CertMaker& Tried to create cert for '*.gcp.gvt2.com', but can't find it from thread 129!
22:09:35:1135 fiddler.https& Failed to obtain certificate for beacons.gcp.gvt2.com due to Certificate Maker returned null when asked for a certificate for be
按时间排序
证书问题,参考下:
(1)首先,看看火狐浏览器的配置,是不是下方“为所有协议使用相同代理”的地方没有勾选上,如果是,请勾选上。
这里写图片描述
有一部分同学做到这一步应该能解决无法抓https的问题。如果还不行,请继续往下看。
一般这个时候,还不行,应该就是你的证书问题了,有些同学可能会问,我是按照正常流程导出并安装的证书,也会有问题?
对的,就是这么奇怪。
(2)接下来,请在下面这个地方输入certmgr.msc并回车,打开证书管理。
楼上两位都说了证书问题,另外还有一个问题就是,装有fiddler的电脑,是不是和手机在同一个局域网内。
可能是你的电脑开启了防火墙,如果是,你把它关闭试试
应该是证书问题,检查一下吧
证书问题,下个证书就好了
多谢各位的热心解答,我把防火墙也关了,证书也下了,还是捕捉不到 HTTPS 包。。。。
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐}

我要回帖

更多关于 fiddler怎么抓包https 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信