whistle
目前发现NodeJS版的类似Fiddler的工具:whistle
非常强大!
帮助文档:https://whistle.gitbooks.io/help/content/install.html
匹配方式
匹配上的请求记录在Newwork菜单中会以加粗标识。
路径匹配
替换本地文件:
www.xxx.com/public/js/index.js file:///Users/xxx/Desktop/index.js
精准匹配
与上面的路径匹配不同,路径匹配不仅匹配对应的路径,而且还会匹配该路径下面的子路径,而精确匹配只能指定的路径,只要在路径前面加$即可变成精确匹配。
$http://www.xxx.com/login file:///Users/xxx/Desktop/dist/login.html
通配符匹配
^http://www.xxx.com/*.js file:///Users/xxx/Desktop/dist/$1.js
^http://www.xxx.com/*.css file:///Users/xxx/Desktop/dist/$1.css
使用filter精确控制请求类型,如下只有post方式的请求才会被匹配:
www.xxx.com/public/js/index.js file:///Users/xxx/Desktop/index.js includeFilter://m:post
替换响应头:
www.xxx.com/public/js/index.js resHeaders:///Users/xxx/Desktop/header.txt includeFilter://m:post
注意:includeFilter由filter细化而来,只有高版本的whistle才支持
拦截https
需要电脑端和客户端同时安装证书!才可以抓包https
开启拦截https
在菜单的https下,勾选“Intercept HTTPS CONNECTs”,
安装证书
Mac安装证书之后,需要双击“whistle”证书,在信任项下将证书设置为“始终信任”。
安装Android客户端证书
在Android上直接通过文件浏览器安装证书时提示,“无法安装该证书,因为无法读取证书文件。”。需要到设置->系统和设置下,更多设置->系统安全,在凭据存储下,通过从SD卡安装,选择下载的rootCA.crt文件。
安装的过程中需要设置锁屏密码。
iOS设置信任证书
iOS 上安装的证书还不是受信任的根证书,虽然证书显示已验证,但是我们需要到设置 -> 关于本机 -> 证书信任设置里对针对根证书启用完全信任。
重新生成证书
通过 w2 restart -A (注意后面加 -A)启动生成新的更证书,再安装下根证书即可。
参考:https://avwo.github.io/whistle/webui/https.html
使用代理
使用socks5代理
# 配置规则
/./ socks://127.0.0.1:1080
使用http代理
# 配置规则
/./ proxy://127.0.0.1:8888
使用weinre
配置规则的时候配置weinre标识,如果不配置标识名称,会使用anonymous标识。
#配置标识
www.xxx.com weinre://id
请求后,在菜单Weinre下会出设置过的标识名称,可以按组区分。没有设置过的会出现在anonymous分组下。
在iOS使用whistle
配置代理
在iOS上可以通过设置->无线局域网->点击当前正在使用的wifi右边的感叹号->HTTP代理,来设置HTTP代理,但因为只能设置一个,当代理ip发生变化的时候还需要重新修改,比较麻烦。
推荐使用Shadowrocket:添加节点:类型选择HTTP,输入服务器ip和端口;选择节点,同时在全局路由中选择代理。
安装证书
为了抓取HTTPS请求,需要安装whistle的证书,可以使用Safari打开Download RootCA链接安装证书,一路点击信任此证书,直到安装完成。
更新whistle
https://avwo.github.io/whistle/update.html
npm install -g whistle
或npm update -g whistle
#如果安装过程出现异常,使用sudo
w2 restart
#更新成功后,重启whistle
#如果版本没有变化,使用sudo