JS逆向之美团网模拟登录!这教程杠杠滴~

切忌用于一切非法途径,否则后果自行承担!

地址:https://passport.meituan.com/account/unitivelogin

一、页面分析

打开网页输入账号:138xxxx8888,密码:123456789点击登录抓包

h5Fingerprint和password的模样基本上就是这个亚子的了,正片请往下看…

二、加密解析

1.password解析

加密定位

搜索password参数:

发现 encrypt.encrypt(dataJson.password)加密关键字(encrypt),点击绿色标注的地方进入js文件代码段:

参数解密

打下断点,并点击登录重新抓包,看看是否能够使断点生效:

发现断点生效:dataJson.password = encrypt.encrypt(dataJson.password),控制台打印dataJson.password看看

接下来单步执行:

到这里已经很明了的看到了,函数传入参数str = 123456789(密码),继续单步执行

到这里就已经很明了了,RSA加密。对于RSA,没有必要使用JS进行模拟还原,这里使用python还原即可(当然这里只针对原生的RSA加密生效,如果网站开发人员对算法有所改写的话另说),所以先使用python还原,最后验证提交是否正确即可。

对于RSA算法原理请移步大佬文章参考, 所以我们只需要知道私钥即可进行算法还原,接下来返回开始的断点函数:

鼠标指针放置this.publicKey上面

控制台打印this.publicKey

python还原RSA:

def Rsa_Password(pwd) ->str:

"""

RSA——Python还原算法

:param pwd: 密码明文

:return: 加密字符串

"""

publickey= 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCRD8YahHualjGxPMzeIWnAqVGMIrWrrkr5L7gw+5' \

'XT55iIuYXZYLaUFMTOD9iSyfKlL9mvD3ReUX6Lieph3ajJAPPGEuSHwoj5PN1UiQXK3wzAPKcpwrrA' \

'2V4Agu1/RZsyIuzboXgcPexyUYxYUTJH48DeYBGJe2GrYtsmzuIu6QIDAQAB'

rsaPublickey = '-----BEGIN RSA PRIVATE KEY-----\n'+publickey+'\n-----END RSA PRIVATE KEY-----'

key = RSA.importKey(rsaPublickey)

cipher= PKCS1_v1_5.new(key)