Skip to content

Latest commit

 

History

History
22 lines (13 loc) · 1.83 KB

账户接管漏洞.md

File metadata and controls

22 lines (13 loc) · 1.83 KB

1、使用一个订阅了包月套餐的账号 A 登录系统,展示了检测、历史报告等信息

2、登录过程调用了接口/msbd-yundi/oauth/token,用于获取 access_token,access_token为用户身份凭证
image

3、通过传入不同的 des_phone,获取不同账户的 access_token,但是des_phone 的加密 算法位未知,需要知道 des_phone 的来源

4、在该业务的 web 端存在订购业务查询办理-订阅业务,输入用户名,也就是手机号后进行查询,经过接口/yundi_manager/api/des/desPhone 返回经过后端加密的密文,对应就是 des_phone 的值
image

5、账号加密接口/yundi_manager/api/des/desPhone,其中 phone 字段为手机号base64编码结果,返回的 enPhone 字段就是 des_phone 的值

6 、 虽 然 不 知 道 具 体 的 加 密 密 钥 , 但 是 可 以 调 用手机号加密接口/yundi_manager/api/des/desPhone 获取手机号对应的 des_phone,获取的了des_phone后就可以调用接口/msbd-yundi/oauth/token,获取 access_token,得到不同用户身份凭证,实现账户接管的效果
image

7、先调用/yundi_manager/api/des/desPhone 获取手机号 B 对应的des_phone,再调用/msbd-yundi/oauth/token,获取手机号 B 的 access_token
image

8、利用获得的 access_token 来接管手机号 B 对应账号,替换请求头中的Authorization,此时页面不再是账号 A 登录后的页面,展示的是账号 B 的页面