声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!
又是好久没写文章了,上周在肝易盾的验证码,只解决了无感验证,发现自己还是不太行,需要继续学习呀。
这篇给大家带来的是美团登入接口的加密破解,是一个RSA类型的加密。
网站:https://passport.meituan.com/account/unitivelogin
抓到登入接口后,看看里面的参数,其中password,csrf,h5Fingerprint
这几个参数比较特殊
然后看看源码里面是否有某些参数,发现源码中有我们需要的csrf参数,其余两个参数是加密的。
因为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
参数
加密入口在这里,上一行是RSA公钥的生成,直接扣JSEncrypt
的RSA加密代码,你也可以自己写
扣下代码后运行下,看着还挺像
到此password、h5Fingerprint
的加密已经搞定了,我们输入正确的账号密码,看看能否登入,可以看到返回的结果是正确的,加密代码太长,就不贴出来了。