某易云音乐登录参数分析

简介: 某易云音乐登录参数分析
项目地址:aHR0cHM6Ly9tdXNpYy4xNjMuY29tLw==

观前提示:

本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除


 定位加密点

老规矩先找包

根据包返回内容判断是否为关键包确定了查看参数

可见到有俩个参数皆为密文 小本本记下来 params  encSecKey


全局搜索看看

 params


结果很多 那我们一个一个看一个一个下断点?那就太麻烦了 我们不是还有另外一个参数嘛 搜一搜再决定也不迟

 encSecKey

对比一下 这个就很舒服了

接下来就是常规操作啦 观察下断点

简简单单 加密位置就找到了 接下来就是分析一下加密逻辑扣代码啦



 逻辑分析

由逻辑可知

params => encText

encSecKey=>encSecKey

所以对应的值也就很清晰了

 params

h.encText = b(d, g),  
  h.encText = b(h.encText, i)

参数分析

d为明文

    password

       看起来像是md5 经过测试 的确是md5不管

    checkToken

       这个是易盾风控 不讲 讲起来太多了

{
  "phone":"xxxxxxxxxxxx",
    "password":"e10adc3949ba59abbe56e057f20f883e",
    "rememberLogin":"true",
    "checkToken":"9ca17ae2e6ffcda170e2e6ee97c968e9f183d4fc61bab48fb7d45b938a8a84f14dfba6f984aa61e9b2ff90c52af0feaec3b92a8cb9bad3d36df894aa82c84f869b9fa6c45ba8f58dd6fc7baeabffd0cd7be9adee9e",
    "csrf_token":""
    }

g按猜测应该是key

b函数进来

AES明晃晃出现在眼前

   iv=>0102030405060708

   mode=>CBC

也顺便验证了g为传入key

然后往上堆栈看key是怎么来的

直接往上找最后一个变量怎么来就行了

看起来像是固定的了

   key=>0CoJUm6Qyw8W8jud

经过观察encText被AES了俩次 密匙不同

第一次key 为 0CoJUm6Qyw8W8jud

第二次key 为 a(16) 的方法

a方法进去观察一波发现 这不就是随机数16位字符串嘛

function a(a) {
        var d, e, b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", c = "";
        for (d = 0; a > d; d += 1)
            e = Math.random() * b.length,
            e = Math.floor(e),
            c += b.charAt(e);
        return c
    }


逻辑分析好直接套库就行了


 encSecKey

这个逻辑很简单 就一行加密代码

h.encSecKey = c(i, e, f)

参数分析

i=>前面第二次aes的key

e=>010001固定

f=>

使用 bqN4R(Ya2x.md)进行加密得到f值

全局搜索一下Ya2x.md确定是不是动态

由搜索可知大概是固定的

f=>00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7


参数分析完就来分析一波 c 函数

点击进入函数



这就直白的RSA加密啦 接着把我们刚刚分析的参数带上去加密就行了


整理一下逻辑

i=a(16);//生成动态key
h.encText = b(d, g) //第一次加密固定key
h.encText = b(h.encText, i) //第二次加密动态key
h.encSecKey = c(i, e, f)//把第二次加密的动态key进行rsa加密

所以encTextencSecKey这俩个参数是绑定的 不然服务器rsa解密不到第二次的key就无法解密出正确的结果


到此 这俩个参数加密逻辑就分析完成啦 js就不扣了





感谢各位老板的观看

相关文章
|
存储 Java 编译器
Java编程中,包声明(Package Declaration)
Java编程中,包声明(Package Declaration)
696 1
|
Linux C语言 Python
Linux C-完美解决segmentation fault (core dumped)
在Linux下进行C语言编程时,遇到一个错误,网上说的都很复杂,看都看不懂,其实就是你对指针进行直接操作之前,没有对它进行分配地址空间。 所以在运行的时候,它不知道在那里操作(比如赋值,取值),所以才报了这个错误。
44959 0
|
4月前
|
存储 SQL 关系型数据库
面试八股文专题-----MySQL篇
本篇系统讲解MySQL核心知识:查询语句的书写与执行顺序、多表连接方式、索引机制(B+树、聚簇/非聚簇、回表、覆盖索引)、SQL优化策略(左前缀原则、索引失效场景)、存储引擎对比及慢查询定位分析,助力高效数据库开发与调优。
|
Ubuntu 开发工具
Ubuntu更换阿里云软件源
Ubuntu更换阿里云软件源
146529 0
|
9月前
|
Web App开发 数据安全/隐私保护 Python
万能ck提取登录软件,京东贴吧淘宝拼多多cookie提取工具,python框架分享
这个框架使用了Selenium进行浏览器自动化操作,包含了京东和淘宝的登录示例。代码展示了如
|
8月前
|
PyTorch 算法框架/工具 图计算
Python音频处理-频谱图实现
本教程介绍如何使用 PyTorch 提取音频特征,重点实现频谱图的生成。内容包括使用 torchaudio 进行频谱提取、频谱图维度解析、手动实现频谱计算步骤,并对两种方法的结果进行对比分析,展示其差异与实现细节。
864 0
|
JavaScript 数据安全/隐私保护 Python
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
1744 4
|
Linux 网络安全 Python
Linux离线安装Python时ssh和hashlib死活安装不上的解决方案
本文提供了Linux环境下离线安装Python时遇到的"ImportError: No module named _ssl"和"ERROR:root:code for hash md5|sha1|sha224|sha256|sha384|sha512 was not found"两个问题的解决方案,通过设置OpenSSL环境变量和编辑Python源码配置文件来解决。
770 1
|
Oracle 安全 Java
安卓逆向 -- Unidbg环境搭建篇
安卓逆向 -- Unidbg环境搭建篇
1218 3