首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

远程解锁电动滑板车

2026-08-22 1 阅读 约7分钟阅读 henriemategui
分享:
字号:
注意:为了保护公司,我用假例子替换了所有可能指向它的东西。域 electricscootercompany.com.br 、应用程序包和用户详细信息(slug、名称和电子邮件)都是组成的。这些都不符合真实的公司。事情是从一篇新闻文章开始的。一家公司刚刚在我的城市扔了一堆电动滑板车。大多数人看到了一种游览城镇的新方式。我看到一群联网设备在尚未有人研究过的后端上运行。首先,我需要两件事:这是哪家公司,以及该服务如何为普通用户提供服务。这个名字就在文章中,谷歌很快就把我带到了他们的网站,其中列出了流程:在手机上打开应用程序;扫描滑板车的二维码;付费解锁车辆;骑。这对任何用户来说都是幸福的道路。我想看看背后发生了什么。第 1 步:侦察 我首先绘制了与 electricscootercompany.com.br 相关的所有内容。子域枚举拉出了一堆,包括: www app api privacidade privacidade2 dev membro 凭证 planos validate painel 并非所有这些都是真正的应用程序。 app 、 membro 、 vouchers 和 planos 基本上都提供相同的页面,只是将您推送到应用程序商店。名字很多,没什么新意。开发主机抛出了 500 并设置了 PHP 会话 cookie,但我无法使用。验证回来了,Conta não localizada。 //“找不到帐户。”,尽管我还不知道它想要哪个参数。我把这些写下来并继续前进。三件事脱颖而出:www.electricscootercompany.com.br:WordPress 营销网站; api.electricscootercompany.com.br :客户端使用的 REST API; painel.electricscootercompany.com.br :供操作员使用的角度面板。网站上没有任何内容链接到该面板。我只是通过枚举找到的。仅仅因为某些东西没有链接并不意味着它被锁定。第 2 步:打开面板而不进入面板为任何人加载:一个生产 Angular 应用程序。我拉下了所有 32 个 JavaScript 块并挖掘了这些包,我发现了 83 个端点:用户和权限;车辆和地图;行程激活和结束;物联网设备;车库、码头和地理围栏;凭证、交易和财务模块。这告诉我这个目标有多么有趣,但它却一无所获。我遇到了大约 38 个没有有效会话的受保护路由,每个路由都给了我同样的结果:HTTP 401。我尝试的很多方法都不起作用:直接路由访问:被身份验证阻止。未签名的管理 JWT:被后端拒绝。篡改令牌声明:未生成有效会话。登录时 SQL 注入:针对身份验证字段运行 SQLMap,发现没有可注入参数。报告端点: php/report.php 返回空 500。 经典公开文件: .git 、 .env 和源映射无法访问。 Auth 在对抗直接的东西方面表现得很好。该应用程序已经为我指明了一条更简单的道路:找到一个真正的用户并追踪他们的密码。步骤 3:WordPress 交出第一块 公共 WordPress REST API 很高兴地让我列出作者: GET /wp-json/wp/v2/users GET /wp-json/wp/v2/users/1?context=view 响应放弃了用户 ID 1、公共名称 admin 、slug electricscootercompany 。通常这只是普通的 WordPress 枚举。在这里,我可以使用相同的标识符并在操作面板上尝试它。根据我输入的内容,登录给出了不同的答案:现有身份+错误密码→“Senha inválida”//“无效密码”不存在的身份→“E-mail não encontrado”//“电子邮件未找到”所以我不必怀疑 electricscootercompany 是否只是一个博客作者。后端直接告诉我操作系统中也存在相同的身份。这就把一个通用的枚举变成了一个目标列表,其中一个名字就很有价值。第四步:暴力破解 用户确认后,我在登录时进行了暴力破解。没有什么能阻止重复的尝试,最终找到了一个有效的密码,因此面板登录成功了。这是真正解释根本原因的部分。由于没有实际的速率限制,只需一个已知的身份即可将猜测循环转变为有效的会话。此后的一切都取决于我在 Burp 中捕捉到的真实会话。 JWT 解码为帐户: { "data" : { "PK_Usuario" : 2 , "email" : "electricscootercompany" , "nome" : "ElectricScooterCompany" , "nivel" : 1000 , "fk_empresa_grupo" : 1 } } 级别 1000 是管理员角色。而且该代币的有效期约为 950 天,因此一次抓取的会话将持续工作数年,除非有人不遗余力地杀死它。第五步:面板不再是假设有了有效的会话,一切都立即改变了。以前给我 401 的路线现在可以返回真实的运营数据。在捕获中,我记录了 118 个唯一主机/方法/路径组合中的 168 个第一方请求。该面板给了我读取权限:舰队地图位于 /mapas/__veiculos ;停靠在 /docas ;车库和运营基础设施;吉奥芬
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱