目录
- 简介
- 资源下载
- 正文
- Fiddler4 装置
- Fiddler4 options装备
- Fiddler4 装备证书
- 重启Fiddler 和 Chrome浏览器
- Fiddler4客户端
重置证书
- Fiddler4 手机端装备
- PC端网络IP获取
- 手机端装备证书
- Fiddler tunnel to 问题
- FiddlerScript的装备(1)
- Tunnel to 终极处理方案(2)
- VirtualXposed 与 Justtrustme合作抓包
- Fiddler 抓取不同链接的色彩显现优化
- 总结
简介
这是一篇关于Fiddler抓包比较全面的文章,包括怎么处理抓包Tunnel to 脚本等
Fiddler(中文名称:小提琴)是一个HTTP的调试署理,以署理服务器的办法,监听体系的Http网络数据流动,Fiddler能够也能够让你查看一切的HTTP通讯,设置断点,以及Fiddle一切的“进出”的数据(我一般用来抓包),Fiddler还包括一个简略却功能强大的依据JScript .NET事情脚本子体系,它能够支撑很多的HTTP调试使命。
Fiddler是以署理WEB服务器的办法工作的,浏览器与服务器之间经过建立TCP衔接以HTTP协议进行通信,浏览器默认经过自己发送HTTP恳求到服务器,它运用署理地址:127.0.0.1, 端口:8888. 当Fiddler敞开会主动设置署理, 退出的时候它会主动刊出署理,这样就不会影响别的程序。不过假如Fiddler非正常退出,这时候因为Fiddler没有主动刊出,会造成网页无法访问。处理的办法是重新启动下Fiddler。
资源下载
若官网下载失利,可运用快捷下载地址
-
Fiddler4
Fiddler4官网
-
VirtualXposed
virtualxposed官网
支撑32位:
virtualxposed32位优化版(虚拟结构)v1.0支撑64位:
virtualxposed64位(虚拟结构)v1.0
virtualxposed64位(虚拟结构)v1.0:快捷地址 -
JustTrustMe4
justtrustme4
justtrustme4 快捷地址
Github JustTrustMe4
正文
Fiddler4 装置
(1)Fiddler官网地址:www.telerik.com/fiddler
(2)翻开官网,挑选经典版
下载。
关于Fiddler EveryWhere
等项没有详细运用过,依据实际状况下载选用
(3)填上邮箱,勾上协议,点击【Download For Windows】
(4)装置
依据自己需要,能够修改途径,修改后,点击【Install】,即可装置成功。
Fiddler4 options装备
(1)翻开fiddler,点击 Tools > Options ==> 装备HTTPS
项
勾选如图内容
(2) Tools > Options ==> 装备Connections
点击 Connections > 在 Fiddler listens on port 中装备端口号(一般装备为8888),勾选【Allow remote computers to connect】、【Act as system proxy on startup】、【Monitor all connections】
- 装备完成,点击 OK
Fiddler4 装备证书
(1) Tools > Options > HTTPS > 点击【Actions】,挑选信赖根证书
- 依据提示,完成证书的装置信赖即可
(2)导出证书到桌面,在PC装置证书
(3)翻开Chrome浏览器
,在浏览器中导入证书
- 将之前从Fiddler中保存到桌面的证书,导入到上述方位。
重启Fiddler 和 Chrome浏览器
Fiddler4客户端 重置证书
- 至此,Chrome访问例如百度,在Fiddler4客户端就能够抓到HTTPS的包了。
- 看例图,大致界面状况
Fiddler4 手机端装备
在PC 端 装备结束一切的工具,接下来也要装备手机端的IP、端口、装置证书、意图在一个局域网环境
PC端网络IP获取
(1)cmd 命令行获取ip地址
windows 按键 + R -> cmd 调出命令行
指令:ipconfig
(2)或许在Fiddler4客户端也能够查看
鼠标点击最右侧的三角图标,悬停在“onLine”
手机端装备证书
有必要: 电脑端和手机处于同一网络下
- 手机 > settings(设置) > WLAN >进入现已衔接网络的装备项
- 点击署理,挑选【手动】
- 翻开手机浏览器:输入 IP地址:端口号,点击
FiddlerRoot certificate
然后装置证书
- Android手机一般为经过贮存空间装置,会弹起一个弹窗,凭据用途,挑选为【VPN和运用】,点击确认。
Fiddler tunnel to 问题
在正常设置抓取HTTP的网络数据后,手机抓包发现恳求数据呈现Tunnel to 443的问题:
会呈现HTTPS类型链接 “fiddler tunnel to 443或许其他tunnel to…”
- 思路
查看以上一路的装备是否正确
查看是否在同一个局域网,而且装备了证书
查看Fiddler是否装备了options 而且装备正确
若以上确认无误:
在如上设置成功过后!!仍然发现有些https恳求显现Tunnel to 443!!!!
不是悉数的https都显现Tunnel to 443,假如是悉数,说明你上面那些过程没有做好!!请参照上面的或许其他人的文章,把证书整理干净了重新来一遍!!!
假如部分恳求呈现Tunnel to 443的状况,那么持续!!
FiddlerScript的装备(1)
(1)翻开 FiddlerScript
(2)选中 OnBeforeRequest
,
这一步能够快速定位到 Script
代码中的OnBeforeRequest
部分
(3)在 OnBeforeRequest
函数下面装备下述代码:
//在这个 OnBeforeRequest 办法里,这段代码放在最终一个办法大括号后边。
//处理HTTPS TUNNEL TO....
var hosts = 'zkd.me develop.dog';
FiddlerApplication.Log.LogFormat("Logger session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
if(hosts.indexOf(oSession.host) > -1){
FiddlerApplication.Log.LogFormat("Capture session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
if(oSession.HTTPMethodIs('CONNECT')){
FiddlerApplication.Log.LogString('create fake tunnel response');
oSession['x-replywithtunnel'] = 'FakeTunnel';
return;
}
if (oSession.isHTTPS){
FiddlerApplication.Log.LogString('switch https to http request');
oSession.fullUrl = oSession.fullUrl.Replace("https://","http://");
oSession.port = 80;
}
FiddlerApplication.Log.LogFormat("Processed session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
}
- 假如试着比较一下和他人文章里贴的这段代码,就会发现我这儿少了一句。便是这一句,在遇到这个问题时被坑了一下。
<spanhljs-attribute">font-family:'KaiTi_GB2312';font-size:16px;">static function OnBeforeRequest(oSession: Session){ </span>
注意:这一句,根本不需要。
(4)点击Save Script
,完成了设置以使其收效。
(5)重启几回Fiddler 客户端。
多重启几回fiddler,最终你会发现,一切的https恳求,都完美的被抓取了!!!
- 这样装备的意图,简略一说:
hosts变量界说的域名便是咱们想让Fiddler帮咱们一同欺骗浏览器的域名。
这段代码的作用是判断假如这些指定的域名上有从浏览器传来CONNECT的恳求时,直接回来一个假的Response,这时Fiddler不会再企图去让恳求的实际呼应者回应这个CONNECT恳求,而是自己回来了一个恳求。
浏览器在收到这个恳求以后不明就里,认为是服务器现已回来了安全信息,于是便愉快地持续发送恳求。Fiddler在收到之后的恳求,会将URL中的https替换为http,端口强制更换为80,再发给恳求的实际呼应者。
Fiddler 抓取不同链接的色彩显现优化
HTTP恳求和HTTPS恳求混在一块会看的目炫,经过脚本保存,能够让HTTP恳求和HTTPS恳求显现不一样的色彩。
如上,装备翻开
FiddlerScript
选中OnBeforeRequest
, 这一步能够快速定位到Script
代码中的OnBeforeRequest
部分
在OnBeforeRequest
函数下面装备下述代码:
//在这个 OnBeforeRequest 办法里,这段代码放哪个方位都可。
if(oSession.isHTTPS && oSession.url.indexOf(oSession.host)> -1){
oSession["ui-color"] = "blue";
}
if(!oSession.isHTTPS && oSession.url.indexOf(oSession.host)> -1){
oSession["ui-color"] = "green";
}
Tunnel to 终极处理方案(2)
为什么会回来Tunnel to 呢,网上给的解说是安卓体系 7.0 以上的,里面有个 ssl pinning,这个东西是对客户端的证书进行验证,假如遇到不信赖的证书,就会断开衔接,不持续恳求。所以这儿运用了 VirtualXposed(结构虚拟机) + justtrustme(绕过SSL证书)
办法(软件链接已放在文章开篇头部)。
VirtualXposed 能够在非root手机上运转xposed插件。经过xposed插件做到各种操作,如:模拟定位、监听用户行为等。
VirtualXposed是依据VirtualApp和Epic在非ROOT环境下运转Xposed模块的完成(支撑5.0~10.0)
- 由于google play不允许32位运用上架,0.20之后不再支撑32位运用
- 但现在还有32位资源,资源链接放在文章开头了
(x86) VirtualXposed_0.18.2.apk
(x64) VirtualXposed_0.20.3.apk
装备
(1)装置【VirtualXposed】后翻开软件,若呈现【图2】的弹窗,点击弹窗外部即可,点击【图3】符号方位能够翻开【设置】页面。
(2)装置运用:先将插件、测验运用装置到手机上,进入【VirtualXposed】,点击【增加运用】,挑选插件、测验运用,点击【装置】。弹窗中挑选【VIRTUALXPOSED】,太极
的话尽管稳定,但不符合当时咱们要运用的意图。
(3)激活设备:【图3】页面向上划,即可进入运用列表,点击【Xposed Installer】,进入激活页面。【图8】为激活结果。
、
(4)装置插件:在【设置】页面点击【模块办理】,勾选咱们装置的插件,回来后在【设置】页面点击【重启】,如【图11】所示,此时插件现已装置结束。
(5)日志获取:
点击【Xposed Installer】,点击左上角按钮,进入侧边栏。点击【日志】,即可看到日志数据。点击页面右上角按钮,能够挑选【当即整理日志】清除之前的日志。
然后翻开测验软件,再次进入日志页面,呈现【图14】内容。获取到了测验包getImei的行为,点击图中按钮能够进行保存。
Fiddler与手机合作抓取
假如上述手机上抓取办法,有时候不方便的话,或许不想用上述办法,能够运用另一种办法:
- 重启之后,再翻开 VirtualXposed,点击咱们刚刚增加进来的APP(你要抓取的APP),操作APP就能够在电脑的fiddler抓到包了。
- 从
VirtualXposed
翻开要抓取的App
总结
1.Fiddler装置与装备
2.Chrome装置证书
3.手机装备IP,PORT,装置证书
4.Tunnel to 第一种处理办法,装备Script脚本
5.Tunnel to 第二种处理办法,VirtualXposed 与 Justtrustme合作抓包
6.Fiddler显现上的优化等