今天整理了一下 AI 方面的资源链接,发现了好几个网页都提到了某 AI陪聊 进行疯狂引流,闲来无事,想着研究一下,发现那叫一个。
登录接口
抓包打开的小程序,发现其登录接口极其简单,最关键的是没发现任何鉴权,只需提供 userid 和 username 即可。
通过搜索关键参数名 tgUserName
,发现其所需要的参数都是直接挂在 window
下的变量。
变量追查
通过继续追查 TelegramUserNameRaw
变量,发现是直接从 TMA SDK 中获取赋值的,而从最开始进入到加载完都是没有任何其他登录、授权交互的,也就是说用户凭证唯一的来源就是点击小程序入口的链接。
入口分析
通过对入口链接做一个简单的 URL Decode,发现确实带了一大坨信息。
其中 tgWebAppData
auth_date
signature
hash
这几个参数应该是比较重要的,其他参数至少在这个小程序中感觉不是必需的。通过前面对小程序网页、接口的分析,感觉是完全没做鉴权验证的,至少没发现明显的验证相关代码,所以直接搏一搏,把除 tgWebAppData
之外的参数全砍了,看下能不能登录。
此时炸裂的来了,确实能够登录,于是乎就想着试下伪造登录。
入口伪造
对 tgWebAppData
参数进一步研究,发现其实里面也没包含什么信息,就一些常规的用户ID、用户名、昵称、头像等信息包在 JSON 里,都是一些比较好搞的数据。但是现在问题就来了,我从哪里搞到这个网站有哪些用户呢?总不能随机找 TG 用户去碰运气吧?哎,就是这么巧,这个小程序是需要在群组里签到的,也就意味着只要签到群里发送过“签到”的都是注册用户,我就随便挑了一个幸运儿当小白鼠测试。
至于用户ID、用户名这些信息,直接通过 小鬼当家-ID-BOT 这个机器人就能查到。
成功伪造登录
拿到用户信息后,修改一下入口链接的参数,重新 encode 一下,丢到浏览器,回车,启动!您猜怎么着,登录进去了,还让我看到了的内容,雀氏
!
这哪个?酒馆?幻梦?情迷?
这不能透露哦。