初识whistle代理工具

时间:2022-06-14 01:17:06

whistle介绍:

Whistle是支付宝开发的又一强大的类似fiddlercharles抓包工具(另一强大的工具是anyproxy:http://anyproxy.io/cn/)

Whistle也是nodejs开发的跨平台web调试代理工具,查看、修改或构造http(s)websocket请求响应数据。

工具地址:https://github.com/avwo/whistle 

介绍及相关用法:https://github.com/avwo/whistle/wiki

帮助文档:https://whistle.gitbooks.io/help/content/

其中支持强大的正则匹配:JavaScript RegExp对象。

安装配置:

(1)安装node.js>=v0.10.0

可以通过node.js官网查看下载:https://nodejs.org/

安装完node之后,执行下面的命令,查看当前node版本:

$node -v

v4.4.0

(2)安装whistle

Windows下执行: $ npm install -g whistle  (maclinux可能要在前边加sudo)

过程可能要*,请自行*。

安装完成后,使用下面命令查看当前whistle版本:

$whistle -V

(3)启动服务:

在命令行cmd下执行:whistle start启动服务,默认会在本机8899端口开启代理。

(4)配置代理:

如果8899端口被占用或者想换成其他端口,可以在启动服务时使用:whistle start -p端口号。

安装chrome代理插件(这是官网推荐方式)

Whistle-for-chrome插件:https://github.com/avwo/whistle-for-chrome

或者proxy SwitchySharp https://chrome.google.com/webstore/detail/proxy-switchysharp/dpplabbmogkhghncfbfdeeokoefdjegm

移动端需要在设置中配置中设置电脑的ip及端口地址。

(5)访问配置页面:

启动whistle及配置完代理后,必须使用chrome浏览器访问配置页面:http://local.whistlejs.com,然后chrome选择好代理地址,然后就可以正常打开了。

手机代理进行抓包:

手机连接电脑ip并指定端口,就可以在浏览器中查看到数据的请求。

设置https拦截:

1. 点击菜单https,下载rootCA证书,同时勾选Intercept HTTPS CONNECTs。

2. 手机扫码下载rootCA证书,并导入到手机中(有可能要先设置解锁屏幕密码)

3. 访问https网站,可以抓到数据。

PS:目前whistle工具已经在chrome商店中上线,可以在chrome://apps中通过搜索whistle,下载whistle插件方式安装。

简单使用:

点击Network,然后再点击Create,创建一个rule

(1)然后如果想要将所有请求的urlresponse中的body进行保存,可以使用:

/^https?:\/\/([^?]+)/ resWriteRaw://E:/whistle/test/res/$1.txt           #response中的body

(2)例如想要用正则去匹配IP地址:

/((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))

(3)dispatch使用:

根据不同的UA或请求头信息返回不同的数据,dispatch关联的脚本在全局属性可以获取获取到以下的数据(具体可以参考帮助文档:https://whistle.gitbooks.io/help/content/rules/dispatch.html)

Url://请求url

Method://请求方法

httpVersion://请求http版本

Ip://请求客户端的ip

Headers://请求头部

Params://请求参数,可以动态修改

比如我定义一个 hao123.com/ceshi dispatch://E://whistle/test.js

然后就可以在test.js中定义:

 

params.username=jack

然后就可以看到hao123.com/ceshi?username=jack放到了请求的后边。

还有更多whistle的规则和使用方法,这里不再赘述,大家可以去查看帮助文档。