【JS逆向系列】某团模拟登入

625 阅读2分钟

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


前言

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

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

网站:passport.meituan.com/account/uni…


一、页面分析

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


二、参数分析

抓到登入接口后,看看里面的参数,其中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的加密已经搞定了,我们输入正确的账号密码,看看能否登入,可以看到返回的结果是正确的,加密代码太长,就不贴出来了。 在这里插入图片描述