不论是普通的前后端开发人员,还是做爬虫、逆向的爬虫工程师和安全逆向工程,必不可少会使用的一种工具就是HTTP抓包工具。说到抓包工具,脱口而出的肯定是浏览器F12开发者调试界面、Charles(青花瓷)、Fiddler(小提琴)、Wireshark、BurpSuite等,然后在此之后,又一跨平台、功能强大的HTTP调试代理工具横空出世,它就是Proxyman,接下面就详细介绍该工具的功能及使用。
1、Proxyman介绍
Proxyman 是一款直观易用的 HTTP 调试工具,拥有出色的 UI 和交互设计, 性能强劲资源占用低。自动生成证书,轻松在 Mac 端启用 SSL 代理抓包,并且集成移动设备的调试。监控应用和 SSL Web 服务器之间所有的 HTTP / HTTPS 流量,方便开发人员进行数据观察及流量分析。
虽然它刚开始上线是以Mac OS端为主要使用对象,但是它不仅支持Mac OS,还支持移动端IOS及Android。当然大家更关心的是不是可以在Windows端使用,Windows体验版现已上线,大家可以通过官网下载试用。
Proxyman界面美观且简洁,可以自定义布局,多设备管理,一屏调整预览所需的关键信息。
- ✅ 100% 由 Apple Swfit NIO 为高性能编写
- ✅ 拦截 HTTP/HTTPS (SSL) 请求。
- 支持 iOS 模拟器和 iOS 和 Android 设备。
- WebSocket网络套接字调试。
- 现代直观的用户界面。
- 专为
macOS
打造,现Windows体验版
已上线。 - 基本调试工具:Compose、Repeat、filter……
- 高级工具:本地映射、远程映射、断点、备份列表、外部代理、无缓存、Protobuf 和清除缓存。
- 可定制的工作区。
- 新功能、新改进每两周构建一次。
- 100% 免费所有基本功能。
- macOS 10.12+
下载地址
官方下载地址:https://proxyman.io/
官方文档地址:https://docs.proxyman.io/
官方github地址:https://github.com/ProxymanApp/Proxyman
2、证书配置
安装步骤在此省略,可自行前往官网下载EXE、DMG、IOS安装Proxyman
为了拦截加密的 HTTPS 消息(请求或响应),您必须在当前计算机上安装Proxyman CA 证书。此步骤对于 iOS、Android 设备、iOS 模拟器、Java VM 和 Firefox 也是强制性的。
这里只演示电脑端,手机端通过证书菜单->在IOS或Android上安装证书,然后根据提示在所连接的Wi-Fi修改代理IP和端口,访问http://proxy.man/ssl即可下载proxyman的证书,安装即可
您可以通过导航到安装 Proxyman CA 证书
- 证书菜单 ->在这台 Mac 上安装证书...
- 安装成功后,可以在设置中查看是否已安装,标号1代表安装成功,标号2或3可查看代理端口号
证书安装配置完成后,通过浏览器访问相关页面(需开启Proxyman)即可看到抓包信息了
3、基础功能
1 - 请求/响应预览器
安装证书并在域或客户端上启用HTTP 响应后,您的网络流量将立即显示在 Proxyman 窗口内,默认分为三个主要区域:
- 左侧面板上的源列表
- 中间面板上的流列表
- 右侧面板上的流内容
正文内容预览器
取决于 Request 或 Response 的内容是什么:Proxyman 会自动显示在单独的选项卡中:
- Header:所有表头(键值表)
- Cookies :标头中的Cookie键
- Auth :标头中的身份验证密钥
- Body : 消息正文:Proxyman 根据Content-Type 自动格式化和美化正文内容,例如 JSON、PNG、GIF、Raw Data、...
- Query:如果请求有查询,则显示所有查询。
- Raw:原始 HTTP 消息。
- Protobuf 消息
- 消息包
- 多部分/表单数据
自定义预览器
- 将 BODY 格式化为JSON ,但 Content-Type 不是
application/json
- 将正文格式化为Protobuf ,但 Content-Type 不是
application/x-protobuf
- 在 Web 视图上呈现 HTML 页面
- 美化缩小文件(HTML、CSS、JS)
- 多部分/表单数据
- 尝试将正文格式化为所选类型,而不管
Content-Type
- 将消息包 (msgpack) 转换为 JSON
- 生成器到 Swift、Node、Javascript、cURL……
- GraphQL 查询更漂亮
如:美化Javascript文件
Body预览器
身体预览器会自动美化内容并提供方便的次要功能:
- Tree View : 以 Tree View 模式表示 JSON
- Hex : 以十六进制格式显示正文
- 仅导出正文:能够将您的正文内容导出到文件。适用于原始数据或二进制数据
- 打开方式:您可以使用您喜欢的编辑器打开正文内容。Sublime Text是 mime 😍
JSON 树视图模式
Proxyman 支持原生 JSON 树视图模式,它显示一个 JSON Body。它允许开发人员:
- 按JSON搜索 JSON
- 像 Google Developer Tool 一样复制 JSON 节点。
2 - SSL 代理
提示:Proxyman默认不解析HTTPS流量,需打开SSL代理配置,并添加过滤规则,只有添加了规则的域名或应用才会自动解析,默认只能添加5条规则,超过5条或无限制需付费。
Proxyman 可以用作中间人,记录您的应用程序和 SSL Web 服务器之间的所有HTTP/HTTPS流量。Proxyman 将动态地即时生成证书,这使开发人员能够以纯文本形式查看 HTTPS 。
您可以为以下方面定义规则:
- 包含列表:拦截来自应用程序/域的流量,如果它在包含列表中
- 排除列表:忽略来自排除列表中的应用程序/域的所有流量
如何在特定域或应用程序上启用 SSL 代理(两种方式)
- 右键单击左侧面板上的应用程序或域 -> 启用 SSL 代理
- 右键单击请求 -> 启用 SSL 代理
3、高级功能
1 - 编辑并重发请求
对于需要直接在 Proxyman 应用程序上测试 Endpoint 而无需从浏览器或客户端应用程序发出新请求的开发人员来说,Edit & Repeat 是一个方便的工具。
快速更改所选请求的Query ,Header ,Body并测试来自服务器的 Response
2 - 编辑新请求
Proxyman可以同Postman或ApiPost等工具一样新建请求,填写请求头及请求参数进行GET、POST等请求,调试验证接口。
通过主界面工具 -> 撰写,进入接口编辑窗口进行网址、请求方法、参数等信息的填写,并确定发送请求
3 - 代码生成器
该功能可帮助你自动生成针对特定代码语言的 HTTP/HTTPS 请求
4 - 断点
断点是一种方便的工具,可帮助开发人员动态编辑请求和响应的内容。可以在请求或响应上设置断点。
- 修改请求 URL,包括 Scheme、Host、Path、Port、HTTP Method(适用于 Proxyman 2.35.4+)
- 修改请求/响应的 HTTP 标头
- 修改请求中的查询或表单条目
- 修改 Authorization/Cookie/Set-Cookie 标头
- 修改请求/响应的 HTTP 正文
- 更改响应 HTTP 状态代码。
右键单击请求 -> 工具 -> 断点
5 - 自定义脚本
Proxyman 提供了脚本功能,开发人员可以编写 JS 代码以灵活的方式操作 Request/Response。
- 通过 JS 代码实现 Map Local / Map Remote / Breakpoint。快 100 倍
- 更改请求内容,包括 Domain、Host、Scheme、Port、Path、HTTP Method、HTTP Headers、Query、Body (Encoded-Form、JSON、plain-text)
- 更改响应内容,包括 HTTP Status Code、HTTP Headers、Body(JSON、Encoded-Form、plain-text、binary...)
- 为常见任务提供大量内置插件和库,例如散列、编码/解码、JSON-文本转换器、美化……
- 能够编写自己的 JS 插件或库
- 旨在取代 Charles Proxy 的 Rewrite GUI Tool
- 使用ShareState 或环境在每个脚本或当前会话之间分配和接收共享状态
6 - 正则表达式
Proxyman 在为所有可用工具定义匹配规则时支持 Wildcard 和全匹配 Regex(正则表达式)
这是一个方便的工具,可以帮助您准确定义哪些请求应该触发该工具
Proxyman的一些日常会使用到的功能就罗列到这里了。该工具还有很多强大的功能,如果需要更详尽的了解及使用,请参考官方文档说明进行(文档链接在第一节下载地址部分)。如果你是用macOS的,的确会比Charles方便直观许多,Window还在体验中,有需要可下载体检。