可点击以下链接体验在线白板版本的文章
https://app.bimuyu.tech/share?id=30739975293243392&workId=30739975301632000&shareCode=4D9D5AB61E1E4B2C8D233B12D085A1D9&name=如何利用fiddler手机抓包以及抓取HTTPS数据包
事件背景
上周末服务器出现了啥问题,暂时把http切换到了https,在支付页面选择微信支付进行支付跳转的时候提示了报错,当时没有找到原因,就准备利用fiddler抓包看看什么情况。
开始
安装Fiddler
准备一台电脑,下载fiddler,我们还是从官网下载吧:https://www.telerik.com/fiddler
安装过程中如果遇到.net framework的报错,十有八九是版本问题,下载个高版本的,比如.net framework 4就够了。
配置Fiddler
抓浏览器的包,直接打开fiddler就可以了,但是抓手机的包还是需要配置一下fiddler的。
1.打开fiddler-Tools-Options
2.点击connections,填写Fiddler listens on port:8888(端口号随便自己填写)
勾选Allow remote computer to connect,OK保存。如提示重启则重启fiddler。
配置手机
要想抓到手机的包,手机必须连上和电脑在同一网段的wifi,连上后:
1.进入wifi设置,找到连上的这个wifi,长按或者点击进入其高级设置里/网络详情,如上图
2.代理选择手动,填写主机名(电脑端ip地址),端口号(刚才在fiddler里设置的端口)
这些都好了,手机访问网络的包就可以被电脑端的fiddler抓到了。
抓HTTPS的包
当前我们只能抓HTTP的包,我们一开始的需求是抓HTTPS的包,那还需要进一步设置,放心,也很简单的。
配置fiddler
打开fiddler,在右侧界面选择FiddlerScript,Go to里选择OnBeforeResponse,在下方代码中找到这个方法,复制进去
if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {
oSession.oResponse.headers["Connection"] = "Keep-Alive";
}
再点击左上方的Save Script,重启fiddler。
配置手机
前提还是连接到跟电脑端同一个网段的wifi,浏览器打开电脑端的ip地址+设置的端口号。
如192.168.0.1:8888
点击FiddlerRoot certificate,下载证书,再执行安装。
如果遇到安装不成功的,需要进入WLAN-高级设置-安装证书。
一切准备就绪,准备好你的HTTPS吧。