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

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



文章目录

  • 前言
  • 一、页面分析
  • 二、参数分析
  • 三、参数破解
    • 3.1 h5Fingerprint解密
    • 3.2 password解密
  • 总结


前言

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

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

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


一、页面分析

进入网页后随便输入账号密码,找到登入的接口
【2021-01-11】JS逆向之美团模拟登入_第1张图片


二、参数分析

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

【2021-01-11】JS逆向之美团模拟登入_第2张图片


三、参数破解

3.1 h5Fingerprint解密

因为h5Fingerprint这个参数比较特殊,我们直接搜这个参数,成功找到加密位置
【2021-01-11】JS逆向之美团模拟登入_第3张图片
然后下断点调试,进入utility.getH5fingerprint方法,调用了下图的两个函数,再进行或操作,其中Rohr_Opt.reload这个函数比较熟悉,在我这篇美团美食文章里有讲过,我们进入这个方法看看是不是一样的
【2021-01-11】JS逆向之美团模拟登入_第4张图片

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

3.2 password解密

加密入口在这里,上一行是RSA公钥的生成,直接扣JSEncrypt的RSA加密代码,你也可以自己写
【2021-01-11】JS逆向之美团模拟登入_第10张图片
扣下代码后运行下,看着还挺像
【2021-01-11】JS逆向之美团模拟登入_第11张图片


总结

到此password、h5Fingerprint的加密已经搞定了,我们输入正确的账号密码,看看能否登入,可以看到返回的结果是正确的,加密代码太长,就不贴出来了。
【2021-01-11】JS逆向之美团模拟登入_第12张图片

你可能感兴趣的:(爬虫,js逆向,反爬,python,爬虫)