header-bg.jpg
使用Fiddler抓包拦截线上JS
发表于 2017-10-07 10:30
|
分类于 JavaScript
|
评论次数 0
|
阅读次数 13279

attachment/2017/10/07/97831507342490.jpg

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

功能介绍

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 请求报文的信息:

detail.png

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

composer.png

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

filter.png

捕获线上 JS 文件

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

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

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

word.png

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

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

js.png

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

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

rule.png

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

complate.png

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

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

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