抓包工具之whistle
文章目录
- 抓包工具之whistle
- 什么是whistle
- whistle 和 charles区别
- 安装whistle
- 启动whistle
- 配置代理
- 全局代理 (**推荐**)
- 浏览器代理 (推荐)
- 总结
- 下载根证书,开启捕获HTTPS请求
抓包工具之whistle
什么是whistle
官网:https://wproxy.org/whistle/
Github: https://github.com/avwo/whistle
whistle(读音[ˈwɪsəl],拼音[wēisǒu])基于Node实现的跨平台web调试代理工具,类似的工具有Windows平台上的Fiddler,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式,且可以通过Node模块扩展功能。
whistle 和 charles区别
Charles可以按照域名维度来组织这些网络请求,而Whistle默认罗列这些请求(当然可以按照各种规则来排序)。如果你习惯了按照域名维度来组织抓到的包,可以在Whistle里面点击鼠标右键"Open"->"Tree View"来切换成和Charles一样。
总结:charles简单易用,但是可扩展性比不上whistle,whistle用熟了之后,效率是比Charles要高的。
安装whistle
Node安装成功后,执行如下npm命令安装whistle (Mac或Linux的非root用户需要在命令行前面加sudo
,如:sudo npm install -g whistle
)
$ npm install -g whistle
whistle安装完成后,执行命令 whistle help
或 w2 help
,查看whistle的帮助信息
启动whistle
最新版本的whistle支持三种等价的命令
whistle
、w2
、wproxy
启动whistle:
$ w2 start
Note: 如果要防止其他人访问配置页面,可以在启动时加上登录用户名和密码 -n yourusername -w yourpassword
。
重启whsitle:
$ w2 restart
停止whistle:
$ w2 stop
调试模式启动whistle(主要用于查看whistle的异常及插件开发):
$ w2 run
启动完whistle后,最后一步需要配置代理。
配置代理
- 代理服务器:127.0.0.1 (如果部署在远程服务器或虚拟机上,改成对应服务器或虚拟机的ip即可)
- 默认端口:8899 (如果端口被占用,可以在启动时通过
-p
来指定新的端口,更多信息可以通过执行命令行w2 help
(v0.7.0
及以上版本也可以使用w2 help
) 查看)
勾选上 对所有协议均使用相同的代理服务器
全局代理 (推荐)
全局代理 (推荐),可通过命令行设置参考设置代理,也可以手动配置:
Mac: System Preferences > Network > Advanced > Proxies > HTTP or HTTPS
浏览器代理 (推荐)
浏览器代理 (推荐):安装浏览器代理插件
安装Chrome代理插件:推荐安装SwitchyOmega
总结
对于要抓某个应用(例如浏览器)支持proxy配置的话,使用这种方式,可以很方便的调试跟踪,不影响其他应用访问,强烈推荐这种方式~
下载根证书,开启捕获HTTPS请求
官方文档:http://wproxy.org/whistle/webui/https.html
whistle会自动生成根证书,并根据根证书对每个请求动态生成https证书.
打开证书管理界面,找到带有 whistle
的字样的证书,如果有多个又不确定最新安装的是哪个,可以全部删除后重新安装
Enable HTTPS
:开启Https拦截功能,只有勾上这个checkbox及装好根证书,whistle才能看到HTTPS、Websocket的请求
也可以通过配置来开启对部分请求的Https拦截功能
www.test.com enable://intercept
/alibaba-inc/ enable://intercept