JS逆向之——天翼云登录

news/2024/7/2 17:47:56

JS逆向之——天翼云登录

前言

此文章仅用于技术交流,欢迎指出相关问题,感兴趣的可以关注我,有相关python逆向问题可以私信交流讨论。

目标与目的

目标网站:天翼云登录

目的:通过构建登录参数,完成天翼云的登录操作。

相关技术

本题涉及两个方面的参数构造:

  1. 密码构造:登录时将密码通过加密,生成密文传递给服务器
  2. 几个相关参数构造:未涉及加密算法,为时间戳与随机数通过一定的计算后生成的几个可变化的值。

本题涉及的js知识点:
(个人理解,或有误,后续认识加深再来调整)

  • webpack打包:js代码通过wwebpack打包后会生成固定模式,该模式有标准的三段式,1. 自执行的函数;2. 加载器;3. 具体的模块代码。
  • 代码在被调用时会将模块对应的id传给加载器,通过加载器去运行指定代码。

1.目标参数

在这里插入图片描述

参数说明

  • userName:用户名
  • password:密码
  • referrer:wep (固定,wep端)
  • mainVersion: 300021100 (固定)
  • comParam_curTime:时间戳
  • comParam_seqCode:计算所得
  • comParam_signature:计算所得
  • isCheck:true(固定值)
  • locale:zh-cn(固定值)

2. 查找密码生成逻辑

  • 在控制台搜索关键词"password",这里有一个小技巧:搜索时加上"=" 或者 ":"等赋值符号,可能更快的找到相应位置。(如果搜不到,或者因为粗心没找到,那就可以先搜别的参数,比如 username。或者通过xhr断点向上找堆栈)。可以找到密码的生成位置如下:

  • 在这里插入图片描述

  • 此时打断点,重新登陆,可以看到a.value就是原始密码

  • 在这里插入图片描述

  • 现在可以将生成密码的这段代码复制到控制台运行,确定该行代码即是密码生成逻辑

  • 在这里插入图片描述

  • Object(w["c"])Object(w["f"])Object(w["g"])拿到控制台运行,他们对应的是三个函数。

  • 在这里插入图片描述

  • 分别对三个函数进行分析,发现Object(w["c"])中有DES加密,关键点就在p对象。

  • 在这里插入图片描述

3. 简单还原密码加密

这里使用第一种方法简单还原密码加密,生成密文。

  • 通过使用crypto-js模块,构造p对象,具体代码如下:

  • 在这里插入图片描述

  • 通过构造p对象,运行代码后,即可完成密码的加密。

  • 至此密码已经还原,但是出于学习的目的,应该尽量不用第三方插件来完成。而且若开发者将加密算法进行魔改,那这种引第三方包的方式肯定是不OK的。故继续向下。

4. 通过扣代码完成密文生成

上面已经找到关键点,对象p。此时若能够找到p对象的生成逻辑,将代码拿过来那就可以大功告成了。

  • 断点调试查找p的生成过程,可以看出刚进入M函数,p对象就已经生成了。

在这里插入图片描述

  • 向上找p的生成逻辑,p = t.n(l),l = t(“3452”)
  • 在这里插入图片描述

思路到这,大体为找到3452函数,构建函数执行就行,此时全局搜或者查看堆栈都行,我是找的堆栈,然后倒入熟悉的webpack格式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MUFRzJr2-1688907562042)(C:\Users\17874\AppData\Roaming\Typora\typora-user-images\image-20230709110211526.png)]

然后全局搜索3452函数即可,发现有这么多模块需要添加

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z9Xp6AGm-1688907562043)(C:\Users\17874\AppData\Roaming\Typora\typora-user-images\image-20230709110248516.png)]

通过堆栈或者全局搜索exports找到加载器位置,然后将其复制,替换模块即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D2f2mCoh-1688907562045)(C:\Users\17874\AppData\Roaming\Typora\typora-user-images\image-20230709110654805.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e3LRjBR9-1688907562046)(C:\Users\17874\AppData\Roaming\Typora\typora-user-images\image-20230709110726175.png)]

由于模块太多了,我就不一一构建了。构建完的函数大体为下:

在这里插入图片描述

最后调用代码如下

在这里插入图片描述

5. 其他参数构造

其他几个参数不涉及加密算法,还原也较为简单,基本步骤也是先找构造位置,然后把代码提取出来,运行,缺什么补什么。

  • 关键词搜索

在这里插入图片描述

  • 提取代码为:

  • 在这里插入图片描述

  • 打印结果为

  • 在这里插入图片描述

6.书写py代码

导入js文件替换相关参数即可[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

成功登录如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1vPosAfk-1688907562052)(C:\Users\17874\AppData\Roaming\Typora\typora-user-images\image-20230709111144690.png)]


http://www.niftyadmin.cn/n/3578225.html

相关文章

RedHat linux RPM命令详细使用说明

rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。 常用命令组合: -ivh&…

癫狂的思考

今天和黑藻同学研究了一个深奥的问题 概括的说应该叫“计算机生命”吧 我在网上查了些资料 看到这样一篇文章 不由惊叹 真是想到一块去了。。。 原文: As with any technology, not all uses of AI will be for the better. The existence…

http协议C语言编程实例

关键词: http 客户端 RFC2616 协议 下载 大家都很熟悉HTTP协议的应用,因为每天都在网络上浏览着不少东西,也都知道是HTTP协议是相当简单的。每次用到FlashGet之类的下载软件下载网…

C# 相对路径 access 简单连接

2019独角兽企业重金招聘Python工程师标准>>> DBHelper.cs /** By :落落* URL: Www.MyLuoLuo.Com*/ using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.OleDb;namespace DBHelp {/// <summary>/// A…

(转)scanf用法

小小scanf其中技术无穷&#xff0c;复杂无穷&#xff0c;在这里只提供了其用法&#xff0c;具体原理&#xff0c;请查看相关C语言大全书籍&#xff0c;不是一般C语言书哦&#xff0c;其中最牛比的好像是可变参数 &#xff0c;其原形定义如下&#xff1a; int scanf(const char*…

KRFoldingViews

2019独角兽企业重金招聘Python工程师标准>>> KRFoldingViews 是一个很简单的库&#xff0c;实现了动画效果的展开和收起的效果。 转载:http://www.adobex.com/ios/source/details/00001097.htm 转载于:https://my.oschina.net/u/868244/blog/107389

C语言字符串和宽位处理函数【转】

字符分类&#xff1a; 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit() isdigit() 测试字符是否为数字 iswgraph() isgraph() 测试字符是否是可见字符…

拆汉字

逛着一个编程论坛  看到一个孩子用C&#xff03;写了个把汉字拆成左右偏旁部首的形式  我一看源码 ——Y的什么玩意  没看懂  自己只会C语言那就寻思着用C实现一下吧   开始动手了——人家的程序是有图形界面的  怎么办&#xff1f;用MFC吧   虽然是C&#xf…