whistle是什么?
抓包工具,读音[ˈwɪsəl],基于node实现的开源免费的跨平台web代理调试工具,可以在PC端抓包也可以在移动端抓包。
抓包工具可以做些什么?
主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应。
为什么推荐使用whistle?
虽然所有的抓包工具功能都是大同小异,但是,whistle是免费的、轻量级的、开源的,并且入门简单,最重要的是它可以定制化功能(可以自主开发插件)
whistle的基本功能
-
查看 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求响应数据
-
修改 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求响应数据
- 修改请求 url、方法、头部、内容等
- 修改响应状态码、头部、内容,并支持本地替换等
- 修改 WebSocket 和 TCP 收发的帧数据
-
设置 hosts(支持 IPv6)、http-proxy、https-proxy、socks
-
作为HTTP代理或反向代理
-
集成常用的 web 调试工具,如 weinre 和 log 等
-
支持用 Node 编写插件扩展
whistle代理调试步骤
-
安装whistle
// 检查 node 版本,>v0.10.0即可
node -v
// 安装 whistle,也可以用淘宝镜像--registry=https://registry.npm.taobao.org
sudo npm install -g whistle
// 查看 whistle 是否安装成功,如果能正常输出whistle的帮助信息,表示whistle已安装成功
w2 help
-
启动whistle
最新版本的whistle支持三种等价的命令
whistle、w2、wproxy
// 启动 whistle
w2 start
// 重启 whistle
w2 restart
// 停止 whistle
w2 stop
Tip:为了保证自己的配置页面的安全性,可以在启动时加上登录用户名和密码
w2 start -n <yourusername> -w <yourpassword>
-
配置代理
- PC端配置代理
安装Chrome代理插件,推荐安装 SwitchyOmega
- 移动端配置代理
在设置中配置当前Wi-Fi的代理,以 iOS 为例:
-
查看HTTP请求、响应
-
修改HTTP请求、响应
- 修改HTTP请求
Componse用来重发请求、构造请求,可以自定义请求的url、请求方法、请求头、请求内容
- 修改HTTP响应
1. 在 Rules 自定义接口返回的内容
2. 在 Network 选中要修改响应内容的接口,在右下角的 Rules 填写刚刚配置的规则
3. 点击 Replay 重新发起请求,可看到自定义的响应内容
-
其他
whistle使用注意事项
- 抓取HTTPS的包,务必安装证书,PC端和手机端都需要安装。手机端记得在“设置”里面手动开启“信任证书”
- 在chrome上使用插件SwitchyOmega开启whistle代理,可以在“不代理的地址列表”配置不经过代理连接的主机,不然所有在chrome访问的地址都会被代理
抓包工具有哪些?
市面上常见的抓包工具有很多,每个抓包工具都有自己最佳的使用场景
whistle入门简单,功能强大,开源免费,轻量级,并且可以自己写插件完成更多的定制化功能
收费的,不过功能强大,也有破解版
收费的,通过断点方式查看、修改请求响应数据,之前大多是在windows系统的电脑使用,不过去年出了mac版本之后,mac系统的电脑也可以使用了
上手稍难,以连接为单位抓取数据(一个连接可以有多个http请求)
是个dump工具,一般用于在路由器上记录数据包,也可以查看流量信息等
- ...
参考文档
揭秘更多whistle用法,可阅读以下文档👇