在 Windows 10 中安装 Wireshark 后对 Shopify CLI 3.x 的抓包流程
1、参考:在 Windows 10 中安装 Fiddler Classic 后对 Shopify CLI 3.x 的抓包流程 。参考:在 Windows 10 中安装 Fiddler Everywhere 后对 Shopify CLI 3.x 的抓包流程。皆以失败告终。
2、选择网络接口:从 Wireshark 主窗口中,选择 Shopify CLI 流量将通过的网络接口。 由于我的是笔记本电脑,通过 Wi-Fi 连接网络,因此选择 WLAN,点击按钮:开始捕获分组。如图1
3、在终端中执行中 Shopify CLI 的命令,以请求获取主题列表。如图2
PS E:\wwwroot\shopify-theme\theme-20230922> shopify theme list --verbose
2023-10-09T08:05:28.924Z: Running command theme list
2023-10-09T08:05:28.955Z: Ensuring that the user is authenticated with the Theme API with the following scopes:
[]
2023-10-09T08:05:28.956Z: Ensuring that the user is authenticated with the Admin API with the following scopes for the store shuijingwanwq-development.myshopify.com:
[]
2023-10-09T08:05:28.958Z: Getting session store...
2023-10-09T08:05:28.965Z: Validating existing session against the scopes:
[
"openid",
"https://api.shopify.com/auth/shop.admin.graphql",
"https://api.shopify.com/auth/shop.admin.themes",
"https://api.shopify.com/auth/partners.collaborator-relationships.readonly",
"https://api.shopify.com/auth/shop.storefront-renderer.devtools",
"https://api.shopify.com/auth/partners.app.cli.access",
"https://api.shopify.com/auth/destinations.readonly"
]
For applications:
{
"adminApi": {
"scopes": [],
"storeFqdn": "shuijingwanwq-development.myshopify.com"
}
}
2023-10-09T08:05:28.967Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2023-10-09T08:05:28.969Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
- User-Agent: Shopify CLI; v=3.49.3
- Keep-Alive: timeout=30
- Sec-CH-UA-PLATFORM: win32
- Content-Type: application/json
2023-10-09T08:05:30.037Z: Request to https://accounts.shopify.com/oauth/introspection completed in 1044 ms
With response headers:
- cache-control: no-cache, no-store, private, must-revalidate, max-age=0
- content-type: application/json; charset=utf-8
- etag: W/"7d98625ff90e9b2d78e0e2a444b14481"
- x-request-id: 72585f47-91c2-4944-81b7-8349d2ab8cbf
2023-10-09T08:05:30.057Z: The identity token is valid: true
2023-10-09T08:05:30.058Z:
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false
2023-10-09T08:05:31.155Z: Request to https://shuijingwanwq-development.myshopify.com/admin/api/unstable/themes.json?fields=id%2Cname%2Crole%2Cprocessing completed in 1089 ms
With response headers:
- content-type: application/json; charset=utf-8
- x-request-id: bb9a9fa0-d8e7-4374-ba47-4d9a6c0b10d0
2023-10-09T08:05:31.166Z: Getting development theme...
2023-10-09T08:05:31.170Z: Getting host theme...
name role id
─────────────────────────────────────────────── ───────────────────── ─────────────
Dawn 的更新版副本 [live] #133644189881
Dawn [unpublished] #130440429753
Sense [unpublished] #130698641593
Crave 重命名 [unpublished] #130935947449
Refresh [unpublished] #131376218297
Colorblock [unpublished] #131376251065
Dawn Customize [unpublished] #130580054201
Taste 的更新版副本 的更新版副本 的更新版副本 的更新版副本 的更新版副本 的更新版副本 [unpublished] #132350771385
shopify-theme-dawn-20221011/main [unpublished] #133060722873
Dawn [unpublished] #133474844857
Copy of Studio [unpublished] #133474975929
Dawn (Shopify CLI) 9 [unpublished] #133492932793
Dawn 的副本 的副本 1 [unpublished] #133635932345
Colorblock [unpublished] #130698510521
Taste [unpublished] #130698543289
Craft [unpublished] #130698576057
Development (639b5c-DESKTOP-QLPK8QM) [development] [yours] #134109462713
2023-10-09T08:05:31.442Z:
Running system process:
· Command: ruby -v
· Working directory: E:/wwwroot/shopify-theme/theme-20230922
2023-10-09T08:05:33.063Z: Request to https://monorail-edge.shopifysvc.com/v1/produce completed in 1582 ms
With response headers:
- x-request-id: 73b18bad-4378-4711-b2de-05386d867fa3
2023-10-09T08:05:33.066Z: Analytics event sent: {
"command": "theme list",
"time_start": 1696838728927,
"time_end": 1696838731391,
"total_time": 2464,
"success": true,
"cli_version": "3.49.3",
"ruby_version": "3.1.1",
"node_version": "18.18.0",
"is_employee": false,
"uname": "windows amd64",
"env_ci": false,
"env_plugin_installed_any_custom": false,
"env_plugin_installed_shopify": "[\"@shopify/cli\",\"@shopify/plugin-did-you-mean\",\"@shopify/theme\"]",
"env_shell": "cmd.exe",
"env_device_id": "eb479d42673daf065d783e808d3de3b4870a4c02",
"env_cloud": "localhost",
"env_package_manager": "unknown",
"cmd_all_launcher": "unknown",
"cmd_all_topic": "theme",
"cmd_all_plugin": "@shopify/theme",
"cmd_all_verbose": true,
"cmd_all_path_override": false,
"args": "--verbose",
"env_plugin_installed_all": "[\"@shopify/cli\",\"@shopify/plugin-did-you-mean\",\"@shopify/theme\"]",
"metadata": "{\"extraPublic\":{},\"extraSensitive\":{}}"
}
2023-10-09T08:05:33.071Z: Completed command theme list
PS E:\wwwroot\shopify-theme\theme-20230922>
4、点击按钮:停止捕获分组。如图3
5、通过 ping shuijingwanwq-development.myshopify.com 获取到对应的 IP 地址:23.227.38.74。如图4
PS E:\wwwroot\shopify-theme\theme-20230922> ping shuijingwanwq-development.myshopify.com
正在 Ping shops.myshopify.com [23.227.38.74] 具有 32 字节的数据:
来自 23.227.38.74 的回复: 字节=32 时间=207ms TTL=50
来自 23.227.38.74 的回复: 字节=32 时间=209ms TTL=50
来自 23.227.38.74 的回复: 字节=32 时间=250ms TTL=50
来自 23.227.38.74 的回复: 字节=32 时间=204ms TTL=50
23.227.38.74 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 204ms,最长 = 250ms,平均 = 217ms
6、在 Source 中找到:23.227.38.74,右键 – 作为过滤器应用 – 选中。如图5
7、仅剩下 Source 为 23.227.38.74 的请求记录。协议中竟然不存在 HTTP,是 TCP 与 TLSv1.3,并且响应是密文。如图6
8、参考:Transport Layer Security (TLS)。密钥日志文件是一种通用机制,即使正在使用 Diffie-Hellman (DH) 密钥交换,它也始终能够解密。
9、添加 SSLKEYLOGFILE 用户变量,可以指定浏览器在访问 SSL/TLS 网站时将对应的密钥保存到本地文件中,其值为:E:\Develop\SSLKEYLOGFILE\key.log。此机制目前(2019 年)不适用于 Safari、Microsoft Edge 和其他浏览器,因为它们的 TLS 库(Microsoft SChannel/Apple SecureTransport)不支持此机制。 此机制也适用于 Web 浏览器以外的应用程序,但它依赖于应用程序使用的 TLS 库。注意:基于 Chrom 的 Edge 版本(版本 79+)也应该可以工作。如图7
10、配置 Wireshark,编辑 – 首选项 – Protocls – TLS。(Pre)-Master-Secret 日志文件名 (tls.keylog_file):读取 TLS 密钥日志文件以进行解密的路径。TLS 调试文件 (tls.debug_logfile):写入有关解密过程的内部详细信息的路径。 将包含解密结果以及此过程中使用的密钥。 这可以用来诊断解密失败的原因。如图8
11、启用 TLS 解密还需要以下 TCP 协议首选项:Allow subdissector to reassemble TCP streams(允许细分器重新组装 TCP 流)。 默认启用。Reassemble out-of-order segments(重新组装无序段)(从 Wireshark 3.0 开始,默认禁用)需要启用。如图9
12、确认浏览器已被完全关闭,可通过查看任务管理器再次确认。在终端中执行了相应命令后,查看捕获的流量,仍然与第 7 步骤类似,TLS 没有被解密。虽然两个日志的更新时间发生了变化。如图10
13、不过在 Chrome 浏览器中访问:shuijingwanwq-development.myshopify.com 。查看捕获的流量,已经显示为 HTTP3,虽然仍然是密文。不符合预期。如图11
14、现在需要解密 HTTP3,在浏览器中导出 证书。如图12
15、配置 Wireshark,编辑 – 首选项 – Protocls – TLS。决定暂时搁置此方案,因为已经找到了更为合适的方案。参考:在 Windows 10 中安装 HTTP Toolkit 后对 Shopify CLI 3.x 的抓包流程












近期评论