js逆向-喜马拉雅登陆参数分析

该博客详细解析了喜马拉雅API登录时加密参数nonce、password和signature的生成逻辑。通过断点调试和代码改写,作者揭示了signature的加密基于q函数,涉及到queryString和sign方法。password的加密逻辑也进行了展示,而nonce则可能由服务器返回。博客提供了password加密部分的代码,并在Gitee上分享了完整分析。
摘要由CSDN通过智能技术生成

声明

本文仅供参考学习,请勿用于其他途径,违者后果自负!


前言

目标网站:喜马拉雅

接口信息:登陆包


参数生成逻辑

在这里插入图片描述
抓包发现,疑似加密的参数有noncepasswordsignature
搜索一番能够轻易定位加密点。我这里搜索的是signature,因为比较有代表性。搜索数量比较多,可以都打上断点逐一调试然后排除,最后就会定位到4332行
在这里插入图片描述
signature的生成逻辑是q函数,参数是一个对象,对象中的内容:

var e = {
	account: 用户账号,
	password: 密文密码,
	nonce: 随机生成的参数
}

进入q函数内部:
在这里插入图片描述
拿到本地进行调试。

将代码简单改写一下

function q(e) {
    var security_key = "WEB-V1-PRODUCT-E7768904917C4154A925FBE1A3848BC3E84E2C7770744E56AFBC9600C267891F";
    var t = getQueryString(e) + "&" + security_key;
    return sign(t.toUpperCase())
}

security_key 写死即可,这样运行会报错,缺少了getQueryString和sign函数,分别拿下来。

getQueryString的函数逻辑如下。
在这里插入图片描述
这是一个将对象变成字符串的方法,没有什么难度,拿下来就可以直接使用。跳出来再看一下sign方法。
在这里插入图片描述
有一个default方法,如果猜的没错这里就是加密的生成逻辑。
console中输出。
在这里插入图片描述
signature的加密就出来了,跳进default中。
在这里插入图片描述
sha1加密,这里就不扣js代码了,因为比较简单,这里不多做演示,可以使用python去还原。


再来看password。
在这里插入图片描述
进入函数。
在这里插入图片描述
再跳进函数内,webpack打包。将整个文件拿到本地,找到加密函数的主逻辑拿下来。
在这里插入图片描述
补上window和navigator这两个环境就可以得到结果。

最后一个nonce没找到在哪里生成,不过找到一个接口。应该是由服务器返回。
在这里插入图片描述

至此三个参数全部分析完成!

代码在我的gitee上,其他加密比较简单,只放了password的加密部分。

链接: password加密逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值