仅通过阅读JS文件就能入侵网站?
出于隐私考虑,我将使用[已编辑]代替应用程序的真实名称。
这就是我在生产环境中发现硬编码JWT的方式。虽然不够华丽,但很有效。
发现过程
这一切始于一次普通的漏洞搜寻:点击、扫描、重复。大量的噪音,没有信号。我尝试了常规检查,但一无所获。然后我感到无聊,打开了生产环境的JavaScript包,因为静态文件往往是秘密藏身之处。
我没想到会直接看到一个明文显示的令牌:
|
|
是的,一个JWT令牌。在生产环境中。在客户端文件中。用于WebSocket认证。有人竟然把认证令牌放在了任何人都可以读取的地方。
实际发现
- [已编辑]的生产包中包含一个名为
socketJWT的变量 - 该令牌用于验证连接到语音/AI socket端点的WebSocket连接
- 令牌已过期,到期时间:2021年11月12日,这使他们避免了立即的实时入侵
安全启示
尽管如此,过期的令牌证明了设计问题:如果一个过期的令牌能够混入,那么有效的令牌也可能如此。
创建账户阅读完整故事。作者仅向Medium会员提供此故事。