在探索物联网技术时,我发现Thingsboard应用程序中存在一个漏洞,该漏洞为权限提升提供了途径。
Thingsboard是一个开源应用程序,允许对物联网服务和部署进行设备管理、数据收集、处理和可视化。此外,单个Thingsboard实例(由租户管理员管理)可以为多个组织提供服务,每个组织都有各自的公司管理员。
在探索其功能时,我注意到“Image Gallery”(图片库)视图中有一个文件上传功能。不幸的是,该功能存在存储型跨站脚本漏洞,攻击者可以通过窃取身份验证令牌来提升权限。
此漏洞影响所有Thingsboard版本,包括社区版、云版和专业版。我负责任地向Thingsboard安全团队报告了该问题,他们确认了漏洞并承诺在未来的版本中修复。随后,我向MITRE报告了该漏洞,并获得了CVE编号。
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H要演示该漏洞,需要安装 ThingsBoard(GitHub仓库),并且至少有一个低权限用户。
步骤 1: 登录一个低权限客户账户。

步骤 2: 导航至 资源 > 图片库

步骤 3: 构造一个恶意图片文件(这里使用带有JavaScript负载的SVG文件)来利用跨站脚本漏洞。

步骤 4: 上传文件并检查响应,以确定负载上传到的目标文件路径。

步骤 5: 访问 publicLink 文件路径以触发负载。

由于负载存储在合法的Thingsboard实例上,攻击者可以轻松诱使高价值目标(例如:租户管理员、公司管理员等)窃取身份验证令牌。
上述影响的演示:
步骤 1: 登录一个高价值账户(这里在Chrome浏览器中使用租户管理员账户,以演示与上面使用的Firefox浏览器隔离的环境)。

步骤 2: 访问之前检索到的 publicLink 文件路径。
