ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Fiddler反向代理

2022-01-07 16:02:06  阅读:196  来源: 互联网

标签:Fiddler 8888 请求 端口 代理 反向 http 80


Fiddler代理:    作为请求端抓取本机请求出去的请求。

 

Fiddler反向代理:   作为响应端抓取请求过来的请求

1、远程客户端  访问  Fiddler    如:手机浏览器上输入http://127.0.0.1:8888   host为Fiddler主机

2、由Fiddler内部配置好的,指向所在的地址。如已配置好指向百度所在ip  

3、此时查看远程客户端手机上虽然输入的是本机Fiddler,但却可以直接打开的是百度网页。

4、从百度上输入内容后查看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 == 8888) {
    oSession.port = 80;
}

改好的脚本如图:

脚本所用的类库是.Net无疑,但语法像C#又不完全是,应该有名堂,还请路过朋友指教。注意上述逻辑并不是照搬官方文档,文档中的逻辑与域名攸关,我改了一下,只关注端口,总之目的就是把本来对8888端口的请求修改为对目标站点的请求,本例假定目标站点的端口是80。

同样确保方法一中Allow...选项勾选。重开Fiddler并保持捕获,此时就能无局限的访问http://*:8888了,同时可以看到捕获成果。

官方文档中列出的第3种做法,其实只是替换一下端口,上面的例子都是要求请求方把请求地址由原来的端口改为8888,但有些时候请求方是你叫不动的,比如微信公众号的网页授权回调url,就要求不能带端口号,你不可能填个http://xxx:8888上去,所以这就要让Fiddler来占用80端口,同时把网站的端口改成别的,最后仍然使用脚本法重写端口。

 

原文链接:https://blog.csdn.net/heavenmark/article/details/90212133

标签:Fiddler,8888,请求,端口,代理,反向,http,80
来源: https://www.cnblogs.com/hanfanfan/p/15775388.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有