课程大纲
前提:电脑和手机连接同一个局域网
(土小帽电脑和手机都连了自己的无线网"tuxiaomao"。)
原理如下:
电脑浏览器抓包时,直接就是本机网络。手机想被电脑Fiddler抓包,就要把Fiddler变成手机和网络之间的节点(代理服务器)。
Step1. 电脑端设置
① Fiddler设置允许远程连接
1、菜单栏中"工具"(tools)- "选项"(options)进入选项面板。
2、标签页"Connection" - 勾选"Allow remote computers to connect"(允许远程电脑连接)。
② 查看Fiddler进程套接字
(套接字就是"IP:端口号",可以理解为把Fiddler当做一个网站来访问)
先打开命令窗口。
1、命令窗口输入:"ipconfig ",查询本机在局域网中的ipv4地址。
2、命令窗口输入:"netstat -ano|findstr [Fiddler端口号] ",比如土小帽设置的Fiddler端口号是3388:"netstat -ano|findstr 3388",确认端口监听情况为"LISTENING"(监听中)。
IP和端口号拼在一起,就得到了Fiddler在无线网"tuxiaomao"中的套接字(访问地址)"192.168.0.103:3388",局域网内的设备可以使用这个"网址"访问Fiddler。
Step2. IOS端设置
① 手机设置网络代理
1、手机"设置" - "无线局域网" - 点击网络"tuxiaomao",进入详情 - 下拉到底部,点击"配置代理"。
2、勾选"手动",填写下方"服务器":Fiddler的IP;"端口":Fiddler端口号 - 点击右上角"存储"。
② 手机下载Fiddler证书
手机浏览器输入电脑端Fiddler访问地址"192.168.0.103:3388" - 点击"FiddlerRoot certificate"下载证书。
③ 手机安装Fiddler证书
手机"设置" - 点击"已下载描述文件",一路"安装"直至"完成"。
④ 手机信任Fiddler证书
安装完成后,手机的http请求可以被抓到,但访问https网站会报错。
手机"设置"-"通用"- "关于本机"下拉到底 - "证书信任设置",打开开关。
(路径太长记不住,可以记住"设置"页搜索关键字"证书"即可出现"受信任证书",点击。)
结果:成功抓取手机请求(浏览器、app等)
至此,手机可以成功访问https请求,Fiddler抓到手机https包。
(确定Fiddler开启了https抓包,操作方式见第6节《fiddler抓包06_抓取https请求(chrome)》)
(iPhone Safari浏览器抓包)
(iPhone QQ抓包)
注意事项/异常情况处理
① 手机浏览器输入Fiddler"IP:端口 " 无法访问下载证书?
【 解决 办法】 关闭电脑防火墙
"控制面板" - "Windows防火墙",查看当前网络分类 - "打开或关闭Windows防火墙",关闭对应类别的网络防火墙。
② 手机如何移除证书?
"设置" - "通用" - "VPN与设备管理",点击证书进入详情 - "移除描述文件" - 确认"移除"。
③ 手机安装证书后,Fiddler未抓到包?
【解决办法】
移除安装的证书 - 使用Fiddlercertmaker.exe生成证书并发送到手机,重新安装。
(注意删除手机上的旧证书文件,以免新旧证书混淆)
(可以用命令行生成证书,也可以双击Fiddlercertmaker.exe插件安装后,再去Fiddler导出新证书。)
④ 关掉Fiddler/电脑,手机无法上网了?
【原因】
设置了代理,就相当于手机和网络之间有个中间环节"电脑的Fiddler",一旦节点关闭了,手机和网络的路就不通了。
【解决办法】
到手机网络,关闭手动代理。
⑤ 以前正常,突然抓不到包了
【解决办法】
检查手机代理配置,和电脑Fiddler的ip地址、端口是否一致:
-
无线网络的ip地址是遵循"动态主机配置协议 (DHCP)",电脑每次连无线网的ip可能会变。
-
Fiddler修改了端口,手机没同步改。
参考文章:
1、《【常用命令】netstat -ano命令图文详细说明》
2、《HTTP抓包之接口自动化测试:Fiddler如何抓包?》
3、《『言善信』Fiddler工具 --- 19.Fiddler抓包HTTPS请求(二)》
4、《Fiddler 安装包下载地址》
5、《Fiddler死活抓不了HTTPS包解决方法》
6、《Fiddler抓取HTTPS最全(强)攻略》
7、《全网最详细,Fiddler抓包实战 - 网页浏览器https请求(超详细)》
8、《Fiddler------3、菜单栏》