使用Fiddler抓包拦截线上JS

一 Fiddler简介

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

二 Fiddler主要功能介绍

Fiddler主界面的布局如下图所示 :

主界面的功能包括以下几个 :

###菜单栏

包括捕获HTTP请求 , 停止捕获请求 , 保存HTTP请求 , 载入本地SESSION , 设置捕获规则等功能。

###工具栏

包括Fiddler针对当前View的操作(暂停 , 清除session , Decode模式 , 清除缓存等)。

###WebSession面板

主要是Fiddler抓取到的每条HTTP请求(每一条称为一个Session),主要包含了请求的URL , 协议 , 状态码 , body等信息

详细信息如下 :

#    HTTP Request的顺序 , 从1开始 , 按照页面加载请求的顺序递增
Result    HTTP响应的状态 , 可以参考这里
Protocol    请求使用的协议(如HTTP/HTTPS/FTP等)
Host    请求地址的域名
URL    请求的服务器路径和文件名 , 也包括GET参数
Body    请求的大小 , 以byte为单位
Caching    请求的缓存过期时间或缓存控制 Header 等信息
Content-Type    请求响应的类型(Content-Type)
Process    发出此请求的Windows进程及进程ID
Comments    用户通过脚本或者右键菜单给此Session增加的备注
Custom    用户可以通过脚本设置的自定义值
###详情和数据统计面板 

针对每条HTTP请求的具体统计(例如发送/接收字节数 , 发送/接收时间 , 还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析 . 如inspector面板下 , 提供headers , textview , hexview , Raw等多种方式查看单条HTTP请求报文的信息 :


而composer面板下 , 则可以模拟向相应的服务器发送数据的过程(这就是灌水机器人的基本原理 , 也可以是部分HTTP Flood的一种方式) :


Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。最简单如:过滤内网http请求而只抓取internet的http请求,或则过滤相应域名的http请求。Fiddler的过滤器非常强大,可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求(如css请求,image请求,js请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求:


三 捕获替换JS文件

举一个栗子 : 拿近年很火的直播行业来说吧 , 它们直播网站的观众发送弹幕字数是有限制的 , 一般它们的字数限制都是通过前台JS进行限制

例如虎牙TV的限制字数只能发送30个 , 那想发送更多字数的弹幕对于Fiddler来说就是a piece of cake

修改之前弹幕的字数限制是这样的 : 


上图中虎牙TV的网站很明显是通过JS限制了弹幕字数只能发送30

那修改起来就很简单 , 我们直接打开F12找出JS文件 , 搜索关于该标签的JS代码 , 将其下载至本地 , 并修改为9999



接着在HTTP请求中找到该JS文件(若文件内容乱码 , 选择Decode解码即可看到代码内容)

 然后打开FiddlerAutoResponder选项卡 , 点击addrule , 将线上的JS文件替换为本地已修改完的JS文件

就这么简单的2步就可以修改成功啦 , 修改完之后的效果 : 

这样就可以发送没有字数限制的弹幕咯 , 这是修改前端文件的一个栗子 , 目的已经达到啦!

不过有可能虎牙TV在后台还会对字数进行限制 , 那后台的文件就办法更改了 , 除非你想进局子喝茶去 , 哈哈 (逃

发布评论
还没有评论,快来抢沙发吧!