【2021-01-11】JS逆向之美团模拟登入

风格不统一 提交于 2021-01-14 11:00:54

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!




前言

又是好久没写文章了,上周在肝易盾的验证码,只解决了无感验证,发现自己还是不太行,需要继续学习呀。

这篇给大家带来的是美团登入接口的加密破解,是一个RSA类型的加密。

网站:https://passport.meituan.com/account/unitivelogin


一、页面分析

进入网页后随便输入账号密码,找到登入的接口
在这里插入图片描述


二、参数分析

抓到登入接口后,看看里面的参数,其中password,csrf,h5Fingerprint这几个参数比较特殊
然后看看源码里面是否有某些参数,发现源码中有我们需要的csrf参数,其余两个参数是加密的。
在这里插入图片描述

在这里插入图片描述


三、参数破解

3.1 h5Fingerprint解密

因为h5Fingerprint这个参数比较特殊,我们直接搜这个参数,成功找到加密位置
在这里插入图片描述
然后下断点调试,进入utility.getH5fingerprint方法,调用了下图的两个函数,再进行或操作,其中Rohr_Opt.reload这个函数比较熟悉,在我这篇美团美食文章里有讲过,我们进入这个方法看看是不是一样的
在这里插入图片描述


点进去看发现是一个sojson的混淆,你可以替换一下,或者AST一下,这里我就懒得搞了,直接下断点调试
在这里插入图片描述
进去后看到这个函数,在return的地方下断点
在这里插入图片描述
走到这参数e是一个json,先转字符产再Oe方法,然后再一个btoa转义
在这里插入图片描述
字符串e包含如下参数,其中cts、ts都是时间戳,由于部分登入会出现滑块,这里的mT就是滑动轨迹,如果没出现验证码可以写死,sign是之前请求返回url加密,方法是btoa(Oe(JSON.stringify(url), {to: "string"})),其他浏览器环境都可以写死
在这里插入图片描述
然后抠一下那几个方法,就可以得到h5Fingerprint参数
在这里插入图片描述








3.2 password解密

加密入口在这里,上一行是RSA公钥的生成,直接扣JSEncrypt的RSA加密代码,你也可以自己写
在这里插入图片描述
扣下代码后运行下,看着还挺像
在这里插入图片描述



总结

到此password、h5Fingerprint的加密已经搞定了,我们输入正确的账号密码,看看能否登入,可以看到返回的结果是正确的,加密代码太长,就不贴出来了。
在这里插入图片描述


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!