whistle介绍:
Whistle是支付宝开发的又一强大的类似fiddler、charles抓包工具(另一强大的工具是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 (mac或linux可能要在前边加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)然后如果想要将所有请求的url的response中的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的规则和使用方法,这里不再赘述,大家可以去查看帮助文档。