某 Telegram AI陪聊 小程序无鉴权任意用户登录漏洞

默认分类 · 13 天前

今天整理了一下 AI 方面的资源链接,发现了好几个网页都提到了某 AI陪聊 进行疯狂引流,闲来无事,想着研究一下,发现那叫一个:cow::beer:

登录接口

抓包打开的小程序,发现其登录接口极其简单,最关键的是没发现任何鉴权,只需提供 userid 和 username 即可。
通过搜索关键参数名 tgUserName,发现其所需要的参数都是直接挂在 window 下的变量。

微信截图_20250315154259.png

微信截图_20250315154507.png

变量追查

通过继续追查 TelegramUserNameRaw 变量,发现是直接从 TMA SDK 中获取赋值的,而从最开始进入到加载完都是没有任何其他登录、授权交互的,也就是说用户凭证唯一的来源就是点击小程序入口的链接。

微信截图_20250315155339.png

入口分析

通过对入口链接做一个简单的 URL Decode,发现确实带了一大坨信息。
2025-03-15_160624.jpg

其中 tgWebAppData auth_date signature hash 这几个参数应该是比较重要的,其他参数至少在这个小程序中感觉不是必需的。通过前面对小程序网页、接口的分析,感觉是完全没做鉴权验证的,至少没发现明显的验证相关代码,所以直接搏一搏,把除 tgWebAppData 之外的参数全砍了,看下能不能登录。

此时炸裂的来了,确实能够登录,于是乎就想着试下伪造登录。

入口伪造

tgWebAppData 参数进一步研究,发现其实里面也没包含什么信息,就一些常规的用户ID、用户名、昵称、头像等信息包在 JSON 里,都是一些比较好搞的数据。但是现在问题就来了,我从哪里搞到这个网站有哪些用户呢?总不能随机找 TG 用户去碰运气吧?哎,就是这么巧,这个小程序是需要在群组里签到的,也就意味着只要签到群里发送过“签到”的都是注册用户,我就随便挑了一个幸运儿当小白鼠测试。

至于用户ID、用户名这些信息,直接通过 小鬼当家-ID-BOT 这个机器人就能查到。
微信截图_20250315162637.png

成功伪造登录

拿到用户信息后,修改一下入口链接的参数,重新 encode 一下,丢到浏览器,回车,启动!您猜怎么着,登录进去了,还让我看到了:underage:的内容,雀氏:cow::beer:

2025-03-15_155004.jpg

TMA Telegram Mini App 小程序 tgWebAppData allows_write_to_pm AI女友 AI陪聊
如果您觉得文章或项目对您有帮助,戳我请博主喝一杯咖啡叭!
  1. 这哪个?酒馆?幻梦?情迷?

    1. LiesAuer (作者)  12 天前
      @秋风于渭水

      这不能透露哦。

Theme Jasmine by Kent Liao