Javascript 应用程序中的 WebSocket 调试给出“401 未经授权”

逆向工程 安卓 javascript 接口 https协议
2021-07-01 21:48:28

我正在尝试对使用 WebSocket 的 Android 应用程序使用的私有 API 进行逆向工程。这些请求是从 WebView 中的 JavaScript 发出的。

我使用 Charles 拦截 HTTP 和 WebSocket 请求,通过它我可以看到应用程序如何成功连接并使用 WebSockets 与 API 对话。API 使用 cookie 来授权连接,负责它的 cookie 是“ts.default”和“ts.default.sig”。

这是请求在 Charles 中的样子:

请求成功

我的目标是能够从 Python 脚本中使用 API。但是,在发出相同的升级请求时,请确保保留所有相关标头,我会收到 401 未经授权的状态代码:

在此处输入图片说明

我已经在此处上传了负责此类请求的相关 JavaScript 代码

我对 WebSockets 不是很精通,看到过去几个小时我一直被困在这里,我想也许这里的某个人能够发现我遗漏的东西。

1个回答

好的,我想通了。默认情况下,我用于 python 的 websocket-client 库编写了自己的 Origin 标头,我最终得到了两个 Origin 标头,它们可能已经从服务器中窃取了信息。

我发现您可以通过supress_origin=True在 WebSocket 上调用 connect 时添加来禁用它