如何用 fiddler 捕获https https 请求

当前位置:
& Fiddler - 超好用的http抓包工具使用介绍(附:拦截请求并修改返回数据)
Fiddler - 超好用的http抓包工具使用介绍(附:拦截请求并修改返回数据)
发布:hangge
一、Fiddler 介绍
Fiddler 是一个使用 C# 编写的 http 抓包工具。它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。
1,功能特点
同 Httpwatch、Firebug 这些抓包工具一样,Fiddler 够记录客户端和服务器之间的所有 HTTP 请求,可以针对特定的 HTTP 请求,分析请求数据、设置断点等。
但 Fiddler 更为强大的是,它还可以修改请求的数据,甚至可以实现请求自动重定向,从而修改服务器返回的数据。
Fiddler 使用也十分方便。在打开 Fiddler 的时候,它就自动设置好了浏览器的代理,通过改写 HTTP 代理,让数据从它那通过,来监控并且截取到数据。当关闭 Fiddler 的时候,它又自动帮你把代理还原。
2,下载安装
直接去 Fiddler 的官网下载即可。地址:
二、http 请求抓取
1,Fiddler 启动后就自动开始工作了。
使用浏览器随便访问几个页面,左侧区域就会将捕获的结果显示出来。
通过点击左下角的图标可以关闭/开启抓包功能。
2,查看请求内容
双击某个会话请求,在右侧的 Inspectors 选项卡中可以查看该会话的内容,上半部分是请求的内容,下半部分是响应的内容。
3,使用 Filters 过滤请求
由于 Fiddler 会抓取所有的 HTTP 请求,这样会造成左边的窗口不断的更新,有时可能会对我们的调试造成干扰。我们可以通过过滤规则的设置,从而来过滤掉那些不想看到的请求。
(1)点击 Fiters 选项卡,勾选左上角的 Use Filters 即可开启过滤器。下方有两个最常用的过滤条件:Zone 和 Host:
Zone:指定只显示内网(Intranet)或互联网(Internet)的内容
Host:指定显示某个域名下的会话
(2)比如我们只想显示与
的会话,可以这么设置。(如果有红框中的文字,表示修改未生效,点击即可。)
三、AutoResponder 用法(拦截指定请求,并返回自定义数据)
AutoResponder 允许你拦截指定规则的求情,并返回本地资源或 Fiddler 资源,从而代替服务器响应。这个在我们平时开放调试中也是很有用的:
比如在前端开发中,如果发现服务器上某个 css/JavaScript&文件有问题,直接上去改会影响生产环境的稳定。利用 Fiddler 的 AutoResponder 功能,我可以将需要修改的文件重定向到本地文件上,这样就可以基于生产环境修改并验证,确认后再发布。
再比如服务端提供了接口和数据格式给前端调用,可能由于某些原因,接口还未开发完毕、或者返回数据有异常。为了不影响开发进度,前端仍然可以继续调用这个接口,然后通过 Fiddler 将请求转向本地的数据文件上。
首页用到了 jQuery,假设我们要修改这个 js。
(2)首先将 js 文件保存到本地(如果本地已经有这个文件,可以跳过这步)
(3)接着打开 AutoResponder 标签设置,勾选前面两个复选框,开启 Fiddler 的请求自动重定向功能。
第一个复选框的作用是开启或禁用自动重定向功能,我们就可以在下面添加重定向规则了。
第二个复选框框勾上时,不影响那些没满足我们处理条件的请求。
(4)下面就要创建重定向规则了,将目标是这个 js 的 HTTP 请求重定向到本地文件。我们可以通过“Add…”按钮手动添加规则,不过这个 URL 已经出现在我们的 session 列表中,可以直接拖动过来。
(5)接着修改这个规则。点击下方的下拉框,选择“Find a file…”,就可以选择本地的文件作为返回的 body 内容。
(6)这里我们选择刚才保持下来的 js 文件。这样我们的请求重定向就设置好了。
(7)试着修改下本地这个 js 文件。比如我们在开头加了个 alert 语句。
(8)刷新页面,重新访问就可以看到效果了。(如果浏览器有缓存,要先清下缓存)
四、解密 HTTPS 的网络数据
通常情况下,对于 HTTPS 请求,我们捕获后是无法看到里面的数据。
不过 Fiddler 可以通过伪造 CA 证书来欺骗浏览器和服务器,从而实现解密 HTTPS 数据包的目的。大概原理就是在浏览器面前 Fiddler 伪装成一个 HTTPS 服务器,而在真正的 HTTPS 服务器面前 Fiddler 又装成浏览器。
(1)要开启 HTTPS 解密,我们依次点击菜单栏&Tools -& Telerik Fiddler Options&
(2)在弹出窗口中,勾选 HTTPS 标签页下的 Decrypt HTTPS Traffic。这是会弹出个对话框询问是否安装证书,选择 Yes 安装即可。
(3)再次访问 HTTPS 页面,可以发现数据已经够被成功解析了。
五、自定义请求发送到服务器
在 Composer 面板中,我们可以向服务器发送自定义请求,可以手动创建一个新的请求,也可以从会话表中,拖拽一个现有的请求。
使用时我们只需要提供简单的 URLS 地址即可。当然还可以在 RequestBody 定制一些属性,如模拟浏览器 User-Agent 等等。
六、抓取 iPhone / Android 设备的数据包
想要 Fiddler 抓取移动端设备的数据包,其实很简单。只要设置代理,让这些数据通过 Fiddler 即可。
(1)首先确保 PC 和手机是在同一个局域网下。打开 Fidder,点击菜单栏中&Tools –& Telerik Fiddler Options&
(2)勾选 Connections 选项卡中的“Allow remote computers to connect”允许远程连接。
勾选后可能会要求重启 Fiddler,那就重启一下。
默认代理端口是 8888,可以不需要修改。
(3)将手机端的代理设置为 PC 的 IP 和端口(这里假设我们 PC 地址为 192.168.1.101)
(4)接着打开手机浏览器,访问 PC 的地址+端口
(5)在打开的页面中点击“FiddlerRoot certificate”,下载并安装证书。
(6)安装完了证书,使用用手机访问应用,就可以看到截取到的数据包了。(这里我使用百度外卖 App 随便测试了下)欢迎访问火车采集器客户帮助中心
服务时间:周一至周六 9:00-18:00
服务时间:周一至周六 9:00-18:00
fiddler采集HTTPS类型网站的设置
【作者:客服小张】【字号:
】【】【】请登陆后使用
只需一步,快速开始
请完成以下验证码
请完成以下验证码
吧友自助信息发布区,请自行甄别
查看: 3674|回复: 6
fiddler抓不到https数据,遇到https的手机上就打不开网页,500 ..
rt,换版本,安装证书等等好多方法都试过了 还是搞不定,求技术大牛指点一二 不慎感激!
有能帮忙的请PM或者左侧QQ联系&&谢谢!!
求大神指导啊。。。!
这个ssl3啊
恩,但是貌似很多人都没问题啊。。&
这个ssl3啊
恩,但是貌似很多人都没问题啊。。
我也是这样..大牛解决没有
什么叫 https ?
Powered by随着AppleStore对APP的审核越来越严格,客户端请求服务端API的方式大多数都变更为了https,在更安全的同时又引起了另外一个问题——本地抓包开发调试的不便。
一般来说,我们在开发API的时候,本地环境基本都是不支持https的(若要支持https则需要安装证书,比较麻烦),抓包神奇Fiddler由于拥有出色的功能,可以对请求进行拦截和处理,因此我在想能不能有一种办法,把所有的https请求自动转换成http呢,这样不就方便了吗!
前期曾经尝试过一种方法,那就是Fiddler里的AutoResponder选项卡里的EnableRules功能,主要是根据指定的规则来过滤https请求,然后手工改成http。
如下图所示:
这种方法可以针对单个请求来实现转化,但是如果APP的请求很多,每个API都要处理一遍的话,难免会力不从心,能不能批量统一处理呢?
答案是可以的!这需要借助Fiddler的Customize Rules功能来帮忙!
这个功能是不随Fiddler的安装默认安装的,第一次使用会弹出提示安装的对话框,进行安装即可。附插件安装地址:/r/?SYNTAXVIEWINSTALL
这个插件的功能是针对抓取的请求,可用自定义脚本的方式来进行处理。
通过查阅资料,我们需要修改OnBeforeRequest方法,在里面添加“https转http”的逻辑,代码如下:
// Handle HTTPS requests
if (oSession.isHTTPS)
oSession.fullUrl = "http://" + oSession.hostname + oSession.PathAndQ
添加后点击保存按钮,再次抓包,奇迹出现了!
所有的https请求都被转换成http请求了!在本地可以愉快的调试API代码了~
参考资料:
/forum/#!topic/httpfiddler/TiR0fm8PLew
/questions//https-http-via-fiddler
阅读(...) 评论()使用Fiddler2录制HTTP操作脚本
- ITeye博客
博客分类:
Fiddler本身是用来做web debugging的工具。其具体的介绍和更多的使用方法请参考知识库中以下文章:
Fiddler---Web调试代理工具
在线调试JavaScript和CSS
本文将详细介绍如何通过fiddler2录制http操作请求的脚本。
为了只保留操作过程中的关键请求数据,我们需要自定义fiddler的过滤项。
完整的录制步骤如下:
打开fiddler2,此时后台会启动一个代理服务器。此后所有的http请求都会经过此代理服务器进行请求转发。
配置fiddler2过滤项。
1:首先需要只保留fiddler对浏览器请求的捕捉。点击左下角处的"All processes"变成"Web Browers"即可。这样fiddler就只捕捉IE或Firefox的请求
2:指定默认的Rules。在fiddler的菜单栏中选择"Rules",弹出下拉列表后,选择以下三项:"Hide Image Requests","Remove All Encodings","Hide 304s".
自定义过滤规则。由于目前的平台4.0系统中存在有大量的循环或显示用的请求,因此还需要自定义过滤规则。
3:选择"Rules"---&"Customize Rules",在弹出的文本文件中进行修改和补充后,自定义规则即时生效。或者使用Rules插件进行修改.
在该文件中找到static function OnBeforeRequest(oSession: Session),OnBeforeResponse方法,增加相应的过滤规则,就会相应的过滤请求。
以下为OnBeforeRequest中增加的过滤条件.附件为一修改后的脚本CustomRules.js
该文件位于C:\Documents and Settings\username\My Documents\Fiddler2\Scripts
//过滤请求不显示到界面上.
if(oSession.HTTPMethodIs("GET")){
oSession["ui-hide"] = "true";
if (oSession.uriContains("BootAndPtStatus.do")){
oSession["ui-hide"] = "true";
if (oSession.uriContains("Alarmlog.do")){
oSession["ui-hide"] = "true";
if (oSession.uriContains("SystemRun.do")){
oSession["ui-hide"] = "true";
}保存脚本。在左侧的请求序列中,选择需要保存的请求数据后,点击右键在弹出的界面中,选择"Save "-&"Sessions"-&"As Text".这样选中的请求就会以文本形式保存。
下面为保存的已录制脚本数据.
该脚本中包含三个步骤的操作:登陆-&强制登陆--&登出
POST /login.dof?action=userLogin HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Referer: http://192.168.19.2:8080/login.html
x-requested-with: XMLHttpRequest
Content-Type: application/x-www-form- charset=UTF-8
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ( MSIE 7.0; Windows NT 5.1; QQDownload 1.7; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Host: 192.168.19.2:8080
Content-Length: 30
Connection: Keep-Alive
Pragma: no-cache
Cookie: JSESSIONID=C404BAFA08A5EF1BAE2D49
username=admin&password=123456
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/charset=utf-8
Date: Mon, 16 Mar :47 GMT
Content-Length: 132
{"success":false,"errors":{"exception":""},"isgrab":"[admin]正在被IP=[192.168.12.154]的用户使用中,是否抢占登录?"}
------------------------------------------------------------------
POST /login.force?action=userLogin HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Referer: http://192.168.19.2:8080/login.html
x-requested-with: XMLHttpRequest
Content-Type: application/x-www-form- charset=UTF-8
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ( MSIE 7.0; Windows NT 5.1; QQDownload 1.7; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Host: 192.168.19.2:8080
Content-Length: 30
Connection: Keep-Alive
Pragma: no-cache
Cookie: JSESSIONID=C404BAFA08A5EF1BAE2D49
username=admin&password=123456
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=FD32FBA72A1BAD3ACBEB616; Path=/
Content-Type: text/charset=utf-8
Date: Mon, 16 Mar :50 GMT
Content-Length: 44
{"success":true,"message":"操作成功!"}
------------------------------------------------------------------
POST /logout.dof?action=logout HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Referer: http://192.168.19.2:8080/index.html
x-requested-with: XMLHttpRequest
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ( MSIE 7.0; Windows NT 5.1; QQDownload 1.7; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Host: 192.168.19.2:8080
Content-Length: 0
Connection: Keep-Alive
Pragma: no-cache
Cookie: JSESSIONID=FD32FBA72A1BAD3ACBEB616
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/charset=utf-8
Date: Mon, 16 Mar :00 GMT
Content-Length: 59
{"success":false,"errors":{"sessionout":true,"outinfo":""}}
Fiddler 具有强大的分析、编码解码(带有一个编码解码工具)、伪装(可动态伪装为任意主流浏览器)等能力。
支持 GZIP 压缩,支持 IPv6,从 2.* 版本开始支持 HTTPS 协议以并可进行动态解密。
支持图像,XML 以及网页表单数据查看。
带有过滤器,方便过滤无关结果。还有“时间线”可以查看收到数据的先后顺序及总耗时。
还带有“请求生成器”可发送自定义数据到服务器。特有的“自动应答”功能可以直接拦截并处理来自浏览器的特定请求而不发送到服务器。
支持插件(扩展),可自定义规则(语法为 JavaScript),甚至设置断点。
不过,目前动态捕获功能似乎只适用于基于 IE 内核的浏览器。
最后,此软件完全免费。我已经用了好几个月,稳定性还是不错的。
下载:
2.* 稳定版本:/dl/Fiddler2Setup.exe
2.* 测试版本(较新):/dl/Fiddler2BetaSetup.exe
在线帮助及视频教程:/Fiddler/help/
官方扩展列表:/Fiddler2/extensions.asp
系统要求: Windows 2000 / XP / 2003 / Vista 操作系统, Microsoft .NET Framework v2.0 或更高版本
浏览: 210610 次
来自: 杭州
啊,我也遇到了这个问题,楼主后面怎么解决了的啊
怎么引用呢,能更具体的写出来吗?
你好,这个问题我也出现了。 你是怎么解决的啊???????
楼主不能写一个简单的html吗,自己去实验怎么用!!!!!

我要回帖

更多关于 fiddler捕获不到https 的文章

 

随机推荐