【手记】让Fiddler抓取入站请求,或者叫用Fiddler做反向代理
注意:本文不涉及HTTPS的场景
最近在弄公众号开发,除了主动去调公众号接口,还存在公众号后台要反过来调你的情形,攻受转换一线间。对于回调的情况,想要知道对方是怎样来请求的很有必要。此前经常用Fiddler抓取从本机出去的请求,非常好用,现在就想能不能反过来,让它抓取进来的请求。搜索一番,答案是肯定的,而且官网就有文档说这事:
http://docs.telerik.com/fiddler/configure-fiddler/tasks/usefiddlerasreverseproxy
本文实际上就是基于上述文档的说明。
从文档标题就能看出,实现反抓的原理本质上是把Fiddler配置成一个反向代理服务(Reverse Proxy)。关于反向代理是怎么一回事请读者自行了解,本文不赘述,简单理解就是让真实提供服务的网站躲在代理服务的背后,请求首先是到代理,再由代理转发给背后的网站,再把网站的响应返回出去。基于这个原理,作为代理的Fiddler当然就能拿到往返的数据。
文档中说了三种做法来配置反向代理,但其实后面两种并没有方式上的区别,只是一个端口谁来用的抉择问题~下面会讲到,所以其实只有两种方法:
一、注册表指定端口法(不推荐,有弊端)
1、在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2下新增DWORD型的键值ReverseProxyForPort,十进制方式输入要抓包的站点的端口,比如站点端口是80,弄完如图:

2、打开Fiddler,菜单Tool > Options,Connections页,确保Allow remote computers to connect选项勾选。如图:

上面那个8888是Fiddler的web服务端口。重启Fiddler,并保持捕获状态,此时从本机访问http://127.0.0.1:8888就能访问到端口为80那个站点,同时可以看到Fiddler有捕获到刚刚对80站点的请求。至于Allow...这个选项,是为了让别的电脑能访问本机的8888端口,不勾的话,外部无法通过【http://局网or外网IPor域名:8888】访问进来~当然,在此之前还要记得在网关把8888映射出去。
注意:这个方法有个局限,就是只能以http://127.0.0.1或localhost或局网IP或计算机名:8888发起请求,不能是公网IP和域名,否则会造成循环捕获,永远不会返回响应,只能关闭Fiddler才能消停。
二、脚本改写端口法
方法是通过菜单Rules > Customize Rules打开自定义脚本,在其中找到OnBeforeRequest方法,在里面添加如下逻辑:
if (oSession.port == ) {
oSession.port = ;
}
改好的脚本如图:

脚本所用的类库是.Net无疑,但语法像C#又不完全是,应该有名堂,还请路过朋友指教。注意上述逻辑并不是照搬官方文档,文档中的逻辑与域名攸关,我改了一下,只关注端口,总之目的就是把本来对8888端口的请求修改为对目标站点的请求,本例假定目标站点的端口是80。
同样确保方法一中Allow...选项勾选。重开Fiddler并保持捕获,此时就能无局限的访问http://*:8888了,同时可以看到捕获成果。
官方文档中列出的第3种做法,其实只是替换一下端口,上面的例子都是要求请求方把请求地址由原来的端口改为8888,但有些时候请求方是你叫不动的,比如微信公众号的网页授权回调url,就要求不能带端口号,你不可能填个http://xxx:8888上去,所以这就要让Fiddler来占用80端口,同时把网站的端口改成别的,最后仍然使用脚本法重写端口。
-文毕-
【手记】让Fiddler抓取入站请求,或者叫用Fiddler做反向代理的更多相关文章
- fiddler抓取手机https请求详解
前言: Fiddler是在 windows下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析,fiddler默认只能抓取http请求,需要配置和 ...
- Jmeter Web 性能测试入门 (二):Fiddler 抓取 http/https 请求
jmeter自带了拦截request的功能,并且也有对应的tool:badboy 可以用.但由于我经常做移动端的项目,个人还是习惯用fiddler来收集request. 官网下载并安装Fiddler ...
- fiddler抓取https的请求详解
本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各种奇葩问题,特此分享! 声明:本文为原创文章,转载请注明来源:https: ...
- fiddler 抓取手机app请求包
今天心血来潮,也不知道怎么了,想着抓抓我们公司手机app的包看看,研究研究我们公司的接口,哎,我们api文档,我自己抓包看看吧.工具选择fiddler,理由免费,用着也舒服,手机设备 iPhone6 ...
- Fiddler 抓取 app 网络请求数据
通过设置代理在同一个路由器下可以通过 Fiddler 实现抓取 app 的网络数据 步骤如下: 手机(Android ,iOS 都可以)和 PC 连到同一个路由器 对手机连接的 WIFI 设置代理,代 ...
- 使用Fiddler抓取IOS_APP的请求
首先在地址https://www.telerik.com/fiddler 下载我们需要的fiddler 在新窗口中写上一些信息然后点击[Download for Windows]进行下载: 安装成功后 ...
- Fiddler抓取手机Https请求
下载并安装Fiddler证书生成器 1.打开Fiddler—>Tools—>Telerik Fiddler Options... 2.Connections选项中勾选Allow remot ...
- 通过fiddler抓取IDEA的请求
2019独角兽企业重金招聘Python工程师标准>>> 因为fiddler默认是代理的8888端口,所以设置一下IDEA的请求使用本地的8888作为代理发出. 1."EDI ...
- 如何让Fiddler可以抓取https的请求
转自:https://jingyan.baidu.com/article/00a07f38bb4f4682d028dcd2.html Fiddler通过在本机开启了一个http的代理服务器来进行htt ...
随机推荐
- 使用测试思路快速学习Python-适合测试工程师的学习方法
本文采用Python doctest单元测试的方法,直接用代码学习代码,滚雪球式的迭代学习. doctest是一个python标准库自带的轻量单元测试工具,适合实现一些简单的单元测试.它可以在docs ...
- 如何用IDEA一步一步开发WebService服务器端
工具:IntelliJ IDEA 15.0.4 IDEA这款IDE还是非常强大的,对WebService也有很好的支持.下面我们来一步一步的实现WebService服务器端: 第一步,新建一个工程:F ...
- ST40 自制 JTAG 适配器
// 文章首发于 https://zhuanlan.zhihu.com/p/28762429 // 但是不知道为什么搜索引擎还没有收录,便在博客再次发布. 0. 引言 意法半导体生产的 SH4 架构的 ...
- Java限流策略
概要 在大数据量高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃.此时你需要使用的技术手段之一就是限流,当请求达到一定的并发数或速率,就进行等待.排队. ...
- JSP前后台数据交互
1.一般方法:在页面加载时载入数据 首先,新建一个包,在包内创建一个类,类实现接口Servlet-javax.servlet 然后,在web.xml文件里配置如下 <?xml version=& ...
- mybatis 的mapper配置文件sql语句中, 有时用到 大于, 小于等等
一, 用<![CDATA[ ]]>标识,例如: <if test="create_timeStart != null and create_timeStart != ' ...
- 老的工程移植到AndroidStudio需要修改的注意事项
之前老的工程用android-apt编译,如果要在新的AndroidStudio编译至少需要修改一下几部分: 1. 修改project里的build.gradle dependencies { cla ...
- 笔记-测试崩溃之memcpy_s
昨天晚上提测,今天早上测试发来贺电,程序崩溃!!!!!! 而问题出在memcpy_s errno_t memcpy_s( void *dest, size_t numberOfElements, co ...
- sqoop1.4.6配置安装
1.下载sqoop1.4.6 2.配置环境变量. 3.复制sqoop/conf/sqoop-env-template.sh为sqoop-env.sh 添加相关的配置 #Setpath to where ...
- Winsock网络编程笔记(1)----入门
今天第一次接触winsock网络编程,看的资料是Windows网络编程第二版.通过博客记住自己的看书笔记.. 在这里贴出第一个程序,虽然程序什么都没做,但以此作为入门,熟悉其网络编程风格.. #inc ...