文章目录

  • 一、通过Fiddler(windows)抓的http请求配置
    • 1. 什么是Fidder
    • 2. Fidder使用场景
    • 3. Fidder下载安装
    • 4. Fidder配置
      • fidder APP抓包时的手机设置
        • 第一步:手机设置代理
        • 第二步:手机fiddler证书安装
        • Android7及以上HTTPS抓包(信任用户证书(CA)转成系统证书)
        • Android10导入系统证书的方法
  • 二、Fidder常用使用技巧
    • 1. 根据ip 过滤请求
    • 2. fidder请求导出
      • 2.1 导出curl
      • 2.2 导出为其他格式
    • 3. fidder 调大字体

一、通过Fiddler(windows)抓的http请求配置

1. 什么是Fidder

Fiddler(fiddler中文版)是一个http协议调试代理工具。fiddler能够记录并检查所有你的电脑和互联网之间的http通讯。

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,使用Fiddler无论对开发还是测试来说,都有很大的帮助。Fiddler4基于4.0的.NET。

可以通过Fiddler对特定的请求,做分析数据、设置断点、调试web应用、修改请求数据等操作,来达到调试web的作用。

Fiddler的运行机制其实就是本机上监听 8888 端口的 HTTP 代理。 Fiddler 启动的时候默认 IE 的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将 Chrome 浏览器的代理改为127.0.0.1:8888 就可以监听数据了。

因为fiddler抓包的原理就是通过代理,所以被测终端需要和安装fiddler的电脑在同一个局域网中。

2. Fidder使用场景

1)辅助定位bug;
2)构建模拟测试场景;
3)APP弱网模拟测试;
4)前端性能分析及优化;

3. Fidder下载安装

https://www.telerik.com/download/fiddler
腾讯软件中心下载: https://pc.qq.com/detail/10/detail_3330.html

双击下载的FiddlerSetup.exe进行安装。
弹出一个窗口:

Windows uses an isolation technology called ‘AppContainer’ that may interfere with traffic capture from Immersive Applications and the Edge browser. Use the WinConfig button in Progress Telerik Fiddler’s toolbar to enable teaffic capture.
Would you like to learn more?
To disable this warning. click ‘Cancel’.

大概意思是这样的:

Windows使用称为“AppContainer”的隔离技术,可能会干扰Immersive Applications和Edge浏览器的流量捕获。 使用Progress Telerik Fiddler工具栏中的WinConfig按钮启用茶叶捕获功能。
你想了解更多吗?
要禁用此警告。 点击“取消”。

最后到安装目录下找到fiddler.exe,双击即可使用fiddler了。

4. Fidder配置

【fiddler】fiddler 配置:HTTPS 或手机 APP 接口数据的抓包配置步骤
参考URL: https://blog.csdn.net/qq_39720249/article/details/81069929
抓包工具fiddler下载配置(一):下载/安装&信任证书
参考URL: https://www.cnblogs.com/mini-monkey/p/11286264.html

Fiddler监听PC端 配置

  1. 开启Fiddler的远程连接:
    开启Fiddler的远程连接,Fiddler 主菜单 Tools -> Fiddler Options…-> Connections页签,选中Allowremote computers to connect,并记住端口号为8888,等会设置手机代理时需要。

    fiddler>Tools>Fiddler Options>Connections 勾选Allow remote computers to connect。

  2. HTTPS配置设置
    手机上的应用很多涉及到个人信息,采用比较安全的HTTPS加密过,而fiddler默认只捕获http会话而不抓取HTTPS报文,导致打开fiddler后就打不开https网页(比如百度)。
    打开Fiddler->Tool->Fiddler Options->HTTPS tab,勾选上并Capture HTTPS CONNECTs(捕获 HTTPS 连接)和 Decrypt HTTPS traffic (HTTPS 请求解密),并安装证书(首次使用无证书,会弹出是否信任fiddler证书和安全提示,直接点击yes就行),重启Fiddler生效。

    HTTPS下拉列表的一些选项说明:
    1.from all processes : 抓取所有的 https 程序, 包括 PC本机 和 手机。
    2.from browsers only : 只抓取浏览器中的 https 请求。
    3.from non-browsers only : 只抓取除了浏览器之外的所有 https 请求。
    4.from remote clients only : 抓取远程的客户端的 https ,可以代表手机,开启手机 Https 抓包,
    如果只想抓取手机上的所有 https 请求,就应该选中此选项。


由于此时抓取的数据包包含了电脑和手机的所有数据包,不便于查看和分析,所以需要对fiddler抓取的数据包进行过滤,进入到"Tools"—>Options——>https项,选择"…from remote clients only",这样就只显示抓到的手机上的数据包。

fidder APP抓包时的手机设置

第一步:手机设置代理
  1. 让手机和PC在同一个局域网下面:

    家用或办公环境把PC和手机WLAN连接上同一个路由器的无线SSID获取到同一网段内的IP地址即可。台式机要插入无线网卡才能连WiFi,最好用笔记本电脑和手机连同一WiFi很方便。

  2. 设置-WLAN,找到连接的wifi长按,选择修改网络:

  3. 然后勾选高级选项,选择代理为手动,填入代理服务器为自己电脑IP,端口填入刚刚记住的8888。

第二步:手机fiddler证书安装
  1. 手机浏览器,地址栏输入http://IPV4:8888
    注意: http://IPV4:8888 就是你fidder监听的ip和地址,即访问你本地fidder监听服务。
  2. 点击页面底部FiddlerRoot certificate 下载证书
  3. 打开设置>更多设置>系统安全>加密与凭据>从存储设备安装 选择下载好的FiddlerRoot.cer进行安装。
    ** 证书这里不要选择WLAN,不然在应用中打开会显示证书错误,应该选择VPN和应用。**,如下,安装证书界面
  4. 浏览器打开https://www.baidu.com/,已经可以抓取HTTPS包了
Android7及以上HTTPS抓包(信任用户证书(CA)转成系统证书)

Android让系统信任用户证书的方法
参考URL: https://www.sabia.cc/android-10-zhengshu.html
Fiddler https最新抓包方法(Android 9.0)
参考URL: https://blog.csdn.net/liuluok123/article/details/95971731
Fiddler HTTPS Andrioid 9.0证书解决方案
参考URL: https://blog.csdn.net/qq_34731627/article/details/103266514

Android从7.0过后,默认不再信任用户导入的证书文件,以至于在数据抓包的时候,不能正确抓取HTTPS的数据包。

解决方案
一、官方解决方案(需修改代码)
官方文档:https://developer.android.google.cn/training/articles/security-config.html
详细演示:https://blog.csdn.net/mrxiagc/article/details/75329629

思路:
Android 7.0后更新安全策略,**软件可以自身选择是否相信用户导入的证书。**所以当我们在手机导入Fiddler的证书后,有些软件依旧抓不到Https的包。
解决方案有2个:

  1. APK里面加入相应的代码(需要修改应用,不够通用)
  2. 把Fiddler证书导入到手机系统里面而非个人里面。(只有root的手机才可以

这里讲一下第二种方案:

  1. 首先将Fiddler证书导出来,保存为 FiddlerRoot.cer
  2. Linux安装Openssl
  3. Openssl安装完成后把证书导入到Linux系统下并进行转换(cer证书转pem证书)
    Fiddler默认是cer证书,需要将cer证书转pem证书。
[root@VM_0_14_centos fiddler]# openssl x509 -inform der -in FiddlerRoot.cer -out fiddler.pem
[root@VM_0_14_centos fiddler]# openssl x509 -inform PEM -subject_hash_old -in fiddler.pem | head -1
269953fb
//如上得到字符串如:269953fb,然后cat fiddler.pem 到这个字符串.0 文件
cat fiddler.pem > 269953fb.0openssl x509 -inform PEM -text -in fiddler.pem -out /dev/null >>  269953fb.0
openssl x509 -inform PEM -subject_hash -in fiddler.pem | head -1cat fiddler.pem > 035f9290.0openssl x509 -inform PEM -text -in fiddler.pem -out /dev/null >> 035f9290.0

//把生成好的269953fb.0、035f9290.0这两个文件放入手
这两个文件放入手机/system/etc/security/cacerts 目录下,并修改这2个文件的读写权限: chmod 777

重启手机,如果生成的文件正确,可以在 信任的凭据 -> 系统中找到如下Fiddler的证书,就可以正常抓取HTTPS的包了

注意:该方法需要手机root。

注意:本节暂未测试验证。但是思路是没有问题的,就是把你的用户证书改成系统证书,从而让可以抓包分析!

Android10导入系统证书的方法

Android10导入系统证书的方法。
参考URL: https://blog.csdn.net/fjh1997/article/details/106756012

由于安卓10采用了某些安全策略,将系统分区/system挂载为只读,就算你root了也没用,无法写入系统分区也就无法导入系统证书,在使用http-canary这样的软件抓包分析的时候,很多app只认系统证书,不认用户证书。

注意:本节暂未测试验证。

二、Fidder常用使用技巧

1. 根据ip 过滤请求

开启fiddler后,会监听所有的请求,在大多数情况下,我们只需要监听部分请求,此时可以使用Filters功能去控制。

  默认情况下过滤是未开启的,需要勾选“user filters”进行启动。如果有多套监听方式,也可以将其导出,在下次需要的时候进行导入。

Hosts
  域名过滤,通过配置,只监听/或不监听默写域名。
在选中不同的过滤方式后,配合下面输入框中输入的地址信息,进行过滤。

(1、Hide the following Hosts:表示在输入框中,输入了哪些域名信息,就不过滤,不进行监听。

如:选中此项,在输入框中,输入www.baidu.com时,此时请求www.baidu.com的请求都不会进行监听,在左侧的session面板中,将不会有www.baidu.com相关的请求记录。

(2、Show only the following Hosts:标识在输入框中输入了哪些域信息,就只监听这些域名,其他的域名将不进行监听。

如:选中此项,在输入框中,输入www.baidu.com时,只有在访问www.baidu.com的请求才会进行监听,即左侧的sessson中只包含www.baidu.com的请求,其他的请求将不会监听显示。

(3、Flag the following Hosts:表示在输入框中输入了哪些域名信息,在左侧的session面板中,这些配置的域名在监听到时,会加标识(如:加粗)

如:选中此项,在输入框中输入www.baidu.com,在访问www.baidu.com时左侧的session面板中,会加标识(加粗)

总结: 点击右侧的Filters => 勾选use Filters => host 第一个选项不动 no zone filter ,第二个选项选择 show only following hosts ,然后填写你需要监控的hosts ,用英文分号隔开。

2. fidder请求导出

fiddler支持导出多种格式,其中saz、har、bat格式(windows系统)是最为常用的。

2.1 导出curl

右上角 File-> Export Sessions -> Selected Sessions

2.2 导出为其他格式

  • SAZ
    SAZ是Session Archive Zip的缩写。 SAZ文件用于保存HTTP请求的信息.

    SAZ文件是一种特殊格式的 .ZIP文件。可以将.SAZ后缀修改为.ZIP, 然后使用标准的ZIP压缩工具打开。

  • HAR
    HAR是HTTP Archive format的缩写,是一种json格式的存档文件格式,多用于记录网页请求记录 。很多软件都支持HAR格式,如:Fiddler,Firebug , Firefox, IE, chrom, Charles等

  • bat
    bat格式是windows批处理命令的一种格式,通过fiddler导出的bat文件里存放的是curl命令,可以在windows系统中直接执行,也可以导入到其它工具中直接生成请求(如:postman)

    以上两种格式导出都是在Export Sessions中操作,不同的是导出bat格式需要选择cURL Script ,导出har需要选择HTTPArchive .

    总结:导出为curl形式,可以导入到postman,因此建议导出为curl脚本格式。

3. fidder 调大字体

选择“工具”->“选项”。会弹出如下选项页面,点击“外观”选项卡后再点击“选择字体”即可调整Fiddler页面字体。

通过Fiddler(windows)抓http请求(android、浏览器)相关推荐

  1. 使用Fiddler进行抓包(Android)

    Fiddler是一个轻量级的http抓包工具,且有良好的用户界面,实用强大易上手.通过设置代理接受处理所有的http请求和响应,可以很轻松的对手机上的应用进行抓包. !!注意:抓包的手机端和PC端必须 ...

  2. 全网最牛,接口测试-Fiddler手机抓包教程(含坑),吐血总结

    目录:导读 一.前言 二.安装Fiddler 三.配置Fiddler 四.重启Fiddler(修改Fiddler配置要重启后才能生效) 五.确认电脑和手机连的同一局域网 六.解密https导致浏览器打 ...

  3. android 监听本机网络请求_fiddler如何抓取https请求实现fiddler手机抓包-证书安装失败100%解决...

    一.HTTP协议和HTTPS协议. (1) HTTPS协议=HTTP协议+SSL协议,默认端口:443 (2) HTTP协议(HyperText Transfer Protocol):超文本传输协议. ...

  4. fiddler无法抓取chrome浏览器请求的解决方案之关闭代理软件

    fiddler无法抓取chrome浏览器请求的解决方案之关闭代理软件 参考文章: (1)fiddler无法抓取chrome浏览器请求的解决方案之关闭代理软件 (2)https://www.cnblog ...

  5. fiddler抓取谷歌浏览器的包_fiddler抓不到chrome浏览器的请求

    今天遇到一个非常尴尬的问题,接口在某种情况下会报错,此时前端会展示NAN之类的东西,由于复现不了,接口现在一直不报 错了,所以就让前端做了个友好提示, 当接口报错时,给个提示"请稍后重试&q ...

  6. fiddler不能抓取浏览器数据_抓包软件 Fiddler 了解一下?

    学会如何抓包,是爬虫的必备技能,甚至可以说,不会抓包就等同于不会爬虫. 那我们怎样抓包呢?如果直接抓取浏览器上的内容,可以直接使用开发者工具进行抓包,但有个局限,只能抓浏览器的,功能也没有多少.还可以 ...

  7. Windows抓包指南①:Proxifier+Fiddler对第三方程序强制抓包

    HOW & WHY 关于Fiddler抓包的文章在网上已经一搜一大把了,但大多数是讲对浏览器的抓包,主要用于分析WEB站点内容,而本文侧重于普通Windows桌面应用程序的HTTP/HTTPS ...

  8. Android使用HttpCanary或Fiddler工具抓包详解

    最近项目出现一些问题需要在抓包查看请求数据是否在发送途中发送了改变想到用Fiddler进行抓包 但是在学习使用的时候发现 还有一款Android抓包工具在手机端就可以使用无需其他设置,本文将详细讲述两 ...

  9. 微信小程序请求webapi调试抓包工具Fiddler以及wx.request请求webapi时web服务器端解析不到code问题

    参考链接 https://blog.csdn.net/weixin_40188140/article/details/82851315 https://www.cnblogs.com/chenboyi ...

最新文章

  1. 浅谈tcp的三次握手和四次挥手的理解
  2. BZOJ4596:[SHOI2016]黑暗前的幻想乡——题解
  3. java的xml面试题_Java程序员的10个XML面试问答
  4. centos网络隔一段时间就断_计算机网络总结
  5. ICCV2019 Workshop—VisDrone2019 Challenge 无人机视觉挑战赛
  6. Do Now 一个让你静心学习的APP——团队博客
  7. [USACO13JAN] Seating
  8. centos下查看最大Socket连接数
  9. POJ 3084 Panic Room (最小割建模)
  10. webpack + react
  11. php 匹配标签内的文本内容 preg_match_all strip_tags
  12. HTML5 webSQL查看表结构
  13. 课后习题讲解(免费)高数下册
  14. 内存free和available区别
  15. C语言 将一个字符串转换为字符,每两个字符间用空格隔开
  16. Python——>图像的字符画绘制
  17. h61 nvme硬盘_切割SN520amp;amp;对比主流NVME2242amp;amp;无硬盘盒迁移系统
  18. 用vue实现,鼠标悬停放大图片,根据鼠标位置倾斜图片网页源码
  19. bpm java_bpm完全解读
  20. 电子版药丸,监控你的健康

热门文章

  1. 读懂CCN生态的第一个虚拟人应用Uverse
  2. 湘潭大学XTU《C语言程序设计》作业1-数学计算
  3. 大智慧L2数据接口怎样进行二次开发?
  4. Java生成唯一标识码的三种方式
  5. 群晖Nas通过jellyfin搭建本地影音库详细全过程(三):jellyfin之刮削小姐姐NFO
  6. 儿时便立志在清华读书,参与三国杀发明,被竞赛学子称为「楼教主」,在他身上还有怎样的传奇故事?
  7. 【转】计算机是如何启动的-阮一峰
  8. 一分钟读懂兼容测试报告(一):概况篇
  9. 银行数字化转型导师坚鹏:银行业务数字化创新工作坊
  10. 数据解读 | 房租上涨工资没一半,年轻人为何无法逃离一线城市?