某易云音乐登录参数分析

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 某易云音乐登录参数分析
项目地址: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就不扣了





感谢各位老板的观看

相关文章
|
3月前
|
JavaScript 前端开发
最万能的登录、注册页。带输入数据的验证。邮箱的正则表达式、正则表达式验证输入的数据
这篇文章提供了一个带有输入数据验证功能的万能登录和注册页面的HTML和JavaScript代码示例,包括正则表达式验证邮箱和用户输入数据。
|
5月前
|
SQL DataWorks 数据管理
DataWorks操作报错合集之在查找支持实例错误的时候提示:无法承担用户的角色,请检查RAM角色配置,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
运维 安全 Serverless
函数计算产品使用问题之登陆函数实例之后如何查看函数的日志
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
运维 Serverless 数据处理
函数计算产品使用问题之创建了AgentCraft应用,登录-注册无法通过,是什么导致的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
参数验证工具
参数验证工具
28 0
Grafana 中,可以使用以下参数来限制用户对面板参数的修改
在 Grafana 中,可以使用以下参数来限制用户对面板参数的修改: 1. `kiosk`:如上所述,该参数可用于启用全屏模式,以隐藏浏览器的地址栏和工具栏,防止用户访问和修改面板参数。 2. `edit`:该参数用于禁止用户编辑面板。当使用 `edit` 参数时,用户将无法修改面板的布局、查询和其他配置选项。 3. `viewPanel`:该参数用于将面板设置为只读模式,以防止用户编辑面板。当使用 `viewPanel` 参数时,用户无法修改面板的任何设置,只能查看面板的内容。 这些参数可以单独使用,也可以同时使用,以提供更严格的限制。要使用这些参数,只需将它们添加到 Grafana
747 0
|
SQL 数据库连接 数据库
学生信息登录系统总结一
在敲学生系统的时候,进行登录学生管理学生信息登录,当时就是出师不利,还没有进入主界面就被卡在外面直接坐上了冷板凳,没想到道路刚开始就是如此坎坷,频繁报错那么就列举出3个具有代表性的问题,这个问题也是困扰了我许久,一直得不到解决,还是老办法站在巨人的肩膀上,通过查阅资料那些前辈们的的博客也是知道,不光自己也是遇到了类似的问题,通过借鉴大神的们的博客总结,让自己也是有了信心,感觉自己也能解决,但是事与愿违,往往想的都是很美好的,现实很残酷,跌宕起伏,排山倒海,猛龙过江,心情跟做过山车一样。
79 0
|
Shell 开发工具 数据安全/隐私保护
写一个批量创建10个用户的脚本users.sh。创建的用户名由字母和数字组成。设置用户的初始密码跟用户名相同,每创建一个用户就显示用户的ID信息,再显示用户名、密码信息。
写一个批量创建10个用户的脚本users.sh。创建的用户名由字母和数字组成。设置用户的初始密码跟用户名相同,每创建一个用户就显示用户的ID信息,再显示用户名、密码信息。
110 0
[导入]用户登录及验证用户是否登录的代码
用户登录及验证用户是否登录的代码文章来源:http://blog.csdn.net/jyk/archive/2006/08/15/1067382.aspx
692 0