fiddler 抓包_万能抓包工具 Fiddler

一、Fiddler 简介

Fiddler 是一个使用 C# 编写的 http 抓包工具。它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。

我很早之前的一篇文章 Fiddler抓取数据,20行代码赚500块,凑巧帮那位朋友解决了他的需求。隔了这么久又有人找我抓公众号数据。今天就分享一下我是如何使用 Fiddler 工具的。

二、实战

2.1 工具安装

Fiddler下载地址 :https://www.telerik.com/fiddler 访问链接,进入网站首页,如下图7b03eb15273da6deb4d5566807452415.png

点击下载,然后会跳到一个问卷页面,填写信息可以下载了。双击下载好的安装程序,点击“下一步”就可安装。

2.2 PC 端请求抓取

查看请求

打开 Fiddler 工具,显示效果如下图:208cdc190719cd52832b2b2eabdb181b.png

两个设置

  1. 打开 fiddler,点击工具菜单Tools->optins..->HTTPS 页签,修改如下内容:05cf55b44ea2d9d730ce6b09fbd4adcb.png这里主要勾选 Decrypt HTTPS traffic这个选项,选择 ...from all processes 即可。并点击右侧的 Actions,导出证书到桌面。76e44fdbf8ee56572b20568176b35f00.png

  2. 打开浏览器 Internet 选项->连接->局域网设置,弹出如下页面,这里主要添加一下本地代理的IP地址和端口。83982aa9b54e17ab409564447efba4a0.png注:windows 好像不需要这一步设置。

过滤请求

选中 Fiddler 中一条记录,右键 Filter Now,然后选择 Hide 'xxx'即可进行过滤。29caead6e634e073b32658f00a210c5f.png

如下图右键过滤的请求,就可以自动取消过滤。730c347d079500f71aedb0c5020c36d6.png

2.3 手机客户端请求抓取

fiddler 配置

打开 fiddler,点击工具菜单Tools->optins..->Connections 页签,勾选 Allow remote computers to conect 即可,意思是允许接收来自远程客户端的连接。04e6114ecea2aa9939fdcc0aa27ab4e6.png

手机配置

  1. 查看服务IP地址 在cmd 窗口输入 ipconfig /all 查看网络信息,获取当前电脑的IP地址,如下图:f1d0b00cfdab48e298446cc0780a1e60.png

  2. 安装证书 在手机浏览器访问 192.168.1.105:8888,手机上下载 Fiddler 证书,如下图:7a5950b46667a1d42c75ef9b18cdebcb.png苹果手机信任证书,设置->通用->描述文件中,选中证书,添加信任即可。

  3. wifi 配置代理 打开手机 wifi 设置,进入配置代理,这里主要添加 服务器端口这两个信息,点击保存即可。如下图4c4aba63429cb5d7eb87e356db0df5d2.png注意:

  • 确保手机和电脑是在同一个局域网,服务器即是运行 Fiddler 工具的那台电脑的IP地址。
  • 端口是上面设置 Fiddler工具,Tools->optins..->Connections 页签中可看到,默认值为8888

数据抓取

在手机上做任何操作,电脑端的 Fiddler都显示对应操作的请求,如下图:05588ff60fb4b418026e7d94e1d0f236.png

2.4  Fiddler 自定义规则

上面那些配置都是基础,接下来才是重头戏。Fiddler的强大之处在于,它可以修改请求参数,响应数据,根据需要自定义规则。OnBeforeRequestOnBeforeResponse 最常用的两个方法。点击Fiddler 菜单 Rules->Customize Rules...就可以打开脚本工具了,这里的脚本支持常用的 js 语法。

OnBeforeRequest

意思是在请求之前可以做的事情。这里实现的功能是将网站请求头信息写入本地文件。代码如下:

if (oSession.uriContains("mobile/wx/product/"))
{
var fso;
var file;
fileName = fileName + "_" + ucp;
fileName = fileName.replace(/\*/g,"");
var filePath="C:\\mntListen\\" + fileName + ".txt";
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile(filePath,2 ,true, false);
file.writeLine(" " + oSession.oRequest.headers);
file.close();
}

注:磁盘对应位置如果没有文件路径,需要提交手动创建。

OnBeforeResponse

意思是在报文响应前可以做的事情。这里我的需求是对网站过滤,修改它的响应报文。

if (oSession.uriContains("mobile/wx/detail/v2"))
{
var body = oSession.GetResponseBodyAsString();
body = body.replace(/INVALID/g,"VALID");
body = body.replace(/title/g,"title1");
body = body.replace(/name/g,"title");
oSession.utilSetResponseBody(body);
file.close();
}

上面的这段代码的意思是,当响应 url 链接包含 mobile/wx/detail/v2,进行内容替换。

查看 Fiddler 手册

打开 Fiddler 工具,右侧有常用对象的使用方法,可快速查阅。c21da40e377af503c11f5e32ffdf01a4.png

三、最后

花了差不多两天时间,终于帮那位朋友解决了他的问题,还是挺有成就感的!中间也有想放弃的时候,最终和朋友的多次沟通,彻底理解需求后,才大功告成。最后我得出一个结论:在做项目开发时,首先需要理解客户需求,才能针对需求寻找解决方案。如果你也在使用 Fiddler 工具的遇到问题,我们一起讨论哈!

参考

  • fiddler抓包详解 :https://www.jianshu.com/p/1c57d8d1ad99

文章推荐

10个月的原创文章汇总

Java程序员接私活的项目-JeecgBoot

Github + hexo matery 主题搭建免费博客

自助快递单号查询

一键转载公众号文章到自己的网站

免费使用 Google Cloud Platform

微信圈子“Github爱好者”

主要分享Github开源项目!

bb9db90b9301042f6ca09f2293688d2f.png

不安分的猿人

孜孜不断的技术分享!

db28944326fd0831407e9ef15be4cc79.png

END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fiddler+X5S(XSS漏洞扫描,抓包)工具 Fiddler 是用C#写出来的,它包含一个简单却功能强大的基于JScript .NET 事件脚本子系统,它的灵活性非常棒,可以支持众多的http调试任务,并且能够使用.net框架语言进行扩展。 Fiddler支持断点调试技术,当你在软件的菜单—rules—automatic breakpoints选项选择before request,或者当这些请求或响应属性能够跟目标的标准相匹配,Fiddler就能够暂停Http通讯,并且允许修改请求和响应。这种功能对于安全测试是非常有用的,当然也可以用来做一般的功能测试,因为所有的代码路径都可以用来演习。 通过显示所有的Http通讯,Fiddler可以轻松地演示哪些用来生成一个页面,通过统计页面(就是Fiddler左边的那个大框)用户可以很轻松地使用多选,来得到一个WEB页面的“总重量”(页面文件以及相关js,css等)你也可以很轻松地看到你请求的某个页面,总共被请求了多少次,以及多少字节被转化了。 用户可以加入一个Inspector插件对象,来使用.net下的任何语言来编写Fiddler扩展。RequestInspectors 和 ResponseInspectors提供一个格式规范的,或者是被指定的(用户自定义)Http请求和响应视图。 另外,通过暴露HTTP头,用户可以看见哪些页面被允许在客户端或者是代理端进行缓存。如果要是一个响应没有包含Cache-Control 头,那么他就不会被缓存在客户端。 同类的工具有: httpwatch, firebug, wireshark。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值