一个弱密码如何变成远程解锁电动滑板车的钥匙
安全研究者 Henri Emategui 披露了一条远程解锁共享电动滑板车的攻击链:公开 WordPress 用户信息、可枚举登录接口、缺少限速的密码猜测、权限过大的管理员账户和超长寿命令牌层层叠加,最终让 Web 后台能够向真实车辆发送开锁指令。
作者:韩启明|OC 政策与安全编辑
安全研究者 Henri Emategui 披露了一条远程解锁共享电动滑板车的攻击链:公开 WordPress 用户信息、可枚举登录接口、缺少限速的密码猜测、权限过大的管理员账户和超长寿命令牌层层叠加,最终让 Web 后台能够向真实车辆发送开锁指令。
一句话结论:这不是高深的 IoT 加密被攻破,而是普通账号安全问题一路没有遇到第二道防线,最后跨过网络边界控制了物理设备。
研究者先通过子域名枚举找到未公开链接的 Angular 运营面板,并从 32 个 JavaScript chunk 中整理出 83 个接口。SQL 注入、伪造 JWT、直接访问路由等尝试都失败,说明系统并非毫无防护。真正的入口来自营销站点:WordPress REST API 公开了一个用户标识,而后台登录对“用户存在但密码错误”和“用户不存在”返回不同提示,确认同一身份也存在于运营系统。
随后,登录接口没有有效限速,一个可猜中的密码换来 level 1000 管理员会话。研究者称 JWT 有效期约 950 天。后台集中提供用户、车辆、车库、财务模块和 IoT 命令,因此一个凭证不只是泄露数据,还能修改测试账户规则并控制车辆。

为证明命令到达硬件,研究者只对一辆测试车辆发送开锁和关锁指令,并让朋友现场拍摄。车辆亮灯并进入可骑行状态。他明确表示没有批量操作,也没有测试移动、制动等可能造成现实危险的功能;文中还替换了公司域名和用户细节,避免指向具体对象。
这条链的根因不是“WordPress 泄露了用户名”这么简单。公开作者信息本来很常见,危险来自多个控制点同时缺席:登录可枚举、无速率限制、无 MFA、管理员权限过宽、令牌几乎永久有效、物理命令不要求二次确认。任何一层有效,都能显著缩小后果。
关键事实
- 初始线索:公开子域名和 WordPress REST 用户信息。
- 认证问题:登录响应可枚举用户,且缺少有效限速。
- 权限问题:猜中的凭证直接获得最高级管理员访问,JWT 约 950 天有效。
- 验证范围:研究者只测试一辆车的开锁与关锁,没有批量或危险动作。
OC 判断
联网硬件最容易被低估的风险,是“普通后台”拥有物理后果。运营面板必须把车辆命令视为高风险操作:短会话、MFA、细粒度角色、命令二次授权、设备侧校验和异常行为检测缺一不可。
为什么重要
- 对 IoT 开发者:身份系统与设备安全是同一个威胁模型。
- 对运营企业:后台便利功能会集中放大单个账号失陷的后果。
- 对用户:数据泄露之外,还可能出现未经授权使用和间接人身风险。
评论
围绕这篇文章补充信息、提出问题或分享观察。