抓包工具之whistle(http、https、socks5)

抓包工具之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 helpw2 help,查看whistle的帮助信息

启动whistle

最新版本的whistle支持三种等价的命令whistlew2wproxy

启动whistle:

$ w2 start

Note: 如果要防止其他人访问配置页面,可以在启动时加上登录用户名和密码 -n yourusername -w yourpassword

重启whsitle:

$ w2 restart

停止whistle:

$ w2 stop

调试模式启动whistle(主要用于查看whistle的异常及插件开发):

$ w2 run

启动完whistle后,最

在进行网络请求分析和抓包任务时,选择合适的代理(Proxy)工具至关重要。以下是一些推荐的工具及其特点和适用场景: ### Charles Charles 是一款功能强大的抓包工具,适用于 Mac 和 Windows 系统。它支持 HTTPHTTPS 和 SOCKS 代理协议,可以捕获和分析网络请求。Charles 提供了直观的用户界面,支持 SSL 代理,能够解密 HTTPS 流量,非常适合调试 Web 应用程序。[^1] ### Fiddler Fiddler 是一款适用于 Windows 系统的免费抓包工具。它支持 HTTPHTTPS 流量的捕获和分析,并且可以通过插件扩展其功能。Fiddler 提供了强大的调试功能,如请求和响应的修改、断点设置等,非常适合开发人员和测试人员使用。 ### Wireshark Wireshark 是一款适用于 Windows、Mac 和 Linux 系统的免费网络分析工具。它能够捕获和分析网络流量,支持多种协议。Wireshark 提供了详细的流量分析功能,适合进行深层次的网络协议分析和网络安全测试。 ### BrowserMob Proxy BrowserMob Proxy 是一个支持 HTTP 流量代理工具,专为 Web 自动化测试设计,支持 Selenium 集成。它能捕获 HTTP 请求和响应,还支持修改请求、添加请求头等操作。BrowserMob Proxy 可以与 Selenium 结合使用,进行自动化测试中的流量分析和调试。[^2] ### Whistle Whistle 是一个功能强大的抓包工具,支持 HTTPHTTPSSOCKS5 协议。它提供了丰富的功能,如全局代理、浏览器代理HTTPS 请求捕获、SOCKS5 支持等。Whistle 还可以通过插件扩展功能,如 whistle.vase 插件可以用于编写脚本解决浏览器跨域问题。[^3] ### 示例代码:使用 BrowserMob Proxy 与 Selenium 以下是一个简单的示例代码,展示如何使用 BrowserMob Proxy 与 Selenium 进行抓包: ```python from browsermobproxy import Server from selenium import webdriver # 启动 BrowserMob Proxy 服务器 server = Server(path="browsermob-proxy", options={'port': 8080}) server.start() # 创建代理 proxy = server.create_proxy() # 配置 Selenium WebDriver 使用代理 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--proxy-server={}".format(proxy.proxy)) driver = webdriver.Chrome(options=chrome_options) # 开始捕获流量 proxy.new_har("example.com") # 访问目标网站 driver.get("http://example.com") # 输出捕获的流量 print(proxy.har) # 清理资源 driver.quit() server.stop() ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值