芒果TV登录加密分析

2024-02-15 11:30
文章标签 分析 加密 登录 tv 芒果

本文主要是介绍芒果TV登录加密分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

芒果TV(h5)登录加密分析

此内容更新时间: 2024/01/21, 芒果TV Web[H5]端登录分析

一、抓个包

1

很直观的参数~舒服

二、侦查它

参数说明
invokermsite不管它
username13888888888手机号
password84ca49******4a3d密码加密
pwdType1密码类型
smscode86不管它
sign41e168a185add482c71277cca9bcb0c8签名令牌
abroad0不管它
deviceid9f2f10de-093d-4079-ae9d-bc5eeedf5d26设备id
captcha图形验证码

2.1 拷问deviceid

2.1.1 算法定位

没有混淆, 直接搜deviceid 下断

deviceid_1

看看Q.gL是什么东西

deviceid_2

再看看o.eP

deviceid_3

继续往前找

deviceid_4

没啥, 若是 cookielocalstorage 存在mg_uuid这玩意儿,直接从这两个口袋里偷

首次运行肯定不存在, 所以回到Q.gL

var r = n(6835)
, i = n(7632)
, o = n(4767);
function s() {try {var t = (0,o.eP)("mg_uuid");return t || (t = (0,i.Z)(),(0,o.d8)("mg_uuid", t, 9e3, ".mgtv.com")),t} catch (e) {return ""}
}

如果o.eP()未能取到值, 则调用i.Z()来取值, o.d8()很明显就是保存了

看看i.Z() 如上代码, 这里的i导入了7632模块

deviceid_5

单纯的生成随机uuid

2.1.2 算法实现
import uuidmg_uuid = str(uuid.uuid4())
deviceid = mg_uuid

2.2 拷问password

2.2.1 算法定位

小玩意儿就是好

password_1

进入c看看是啥

password_2

这小东西好像还是个RSA加密, 没啥需要注意的, 就是拼接了时间戳和随机数之后进行加密, 如:

17058489040.112442429301682361705848904170123456

直接抠代码了

function c(t) {return y(131), t = function () {var t = String(Date.parse(new Date)).substring(0, 10),e = String(Math.random()),n = String(e + t + t + e).substring(0, 32);return t + n}() + t,function (t, e) {var n = [],r = e.length,i = 0;for (; i < r;) n[i] = e.charCodeAt(i), i++;for (; n.length % t.chunkSize != 0;) n[i++] = 0;var o, s, a, u = n.length,c = "";for (i = 0; i < u; i += t.chunkSize) {for (a = new m, o = 0, s = i; s < i + t.chunkSize; ++o) a.digits[o] = n[s++], a.digits[o] += n[s++] << 8;var f = t.barrett.powMod(a, t.e),l = 16 == t.radix ? k(f) : S(f, t.radix);c += "".concat(l, " ")}return c.substring(0, c.length - 1)}(new f("10001", "", "A5245A4630DD7CE9D8A967E33A50EB52C2634FD042C4BFBCF5A5C1317A234FD0D1D2C75D083946AF70CE480C399FAD8EEBE9F5A904F30E4D3C91CDD7C27C4D07E27015D46B29A003E9D49834E19041A7BA45A95E6161697975721E88949E8023DA682895086223683593F054E7AAE0E07C40DB33BD80EE5909CE48D17C07D097"), t)
}function f(t, e, n) {this.e = j(t), this.d = j(e), this.m = j(n), this.chunkSize = 2 * I(this.m), this.radix = 16, this.barrett = new V(this.m)
}
var l, p, h, d = 16,g = 65536,v = 65535;function y(t) {l = new Array(t);for (var e = 0; e < l.length; e++) l[e] = 0;p = new m, (h = new m).digits[0] = 1
}
y(20);
w(1e15);function m(t) {this.digits = "boolean" === typeof t && 1 == t ? null : l.slice(0), this.isNeg = !1
}function b(t) {var e = new m(!0);return e.digits = t.digits.slice(0), e.isNeg = t.isNeg, e
}function w(t) {var e = new m;e.isNeg = t < 0, t = Math.abs(t);for (var n = 0; t > 0;) e.digits[n++] = t & v, t = Math.floor(t / g);return e
}function _

这篇关于芒果TV登录加密分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711260

相关文章

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

SpringBoot3使用Jasypt实现加密配置文件

《SpringBoot3使用Jasypt实现加密配置文件》这篇文章主要为大家详细介绍了SpringBoot3如何使用Jasypt实现加密配置文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... 目录一. 使用步骤1. 添加依赖2.配置加密密码3. 加密敏感信息4. 将加密信息存储到配置文件中5

SpringBoot整合jasypt实现重要数据加密

《SpringBoot整合jasypt实现重要数据加密》Jasypt是一个专注于简化Java加密操作的开源工具,:本文主要介绍详细介绍了如何使用jasypt实现重要数据加密,感兴趣的小伙伴可... 目录jasypt简介 jasypt的优点SpringBoot使用jasypt创建mapper接口配置文件加密

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言