JS逆向day05-某网站登录生成元素加密破解

article/2025/9/25 19:08:28

逆向某网站的登录接口生成元素加密

由于是非法网站所以本文对网址进行了遮挡,但是其中的登录接口加密还是挺有意思的,故写下日志进行逆向,本文仅供参考!

登录接口解析

还是用我们的老套路,发送登录请求,获取登录的url,来看看参数加密情况

post参数
password很明显这个参数加密了,作者这里输入了123456但是返回的却是一堆乱码,话不多说直接搜索看看登录的url看看是否能定位到请求代码处
在这里插入图片描述
很快就找到了登录接口处
在这里插入图片描述
由于该代码完全明文所以我们也非常容易能看出来代码的作用:

判断isCrypt是否为真,真的话调用cryptStr函数传入password参数,假则直接返回password,再加上下面的提交的crypt参数,小编猜想是否能提交的时候将crypt改为0,password直接传入明文是否能登录成功,通过charles发包后也证实了此观点,不过本文的目的是为了逆向学习交流分析,故作此下文

而我们的逆向思路也显而易见的出来了,在此处下个断点看看cryptStr函数是如何运行的,重新发送登录请求,成功的断下来了,F11跟进看看代码内部逻辑
在这里插入图片描述
下面是这段代码:

    var cryptStr = function (val) {var temp = $("<div style='display:none;'><input class='cryptStr' type='password' name='password' /><button class='btnCrypt'>submit</button></div>");var cryptStrInput = temp.find(".cryptStr").val(val);temp.appendTo(document.body);temp.find(".btnCrypt").click();var cryptStr = cryptStrInput.val();temp.remove();return cryptStr;};

首先通过传入的参数可以很明显的看出来是我们输入的明文密码,然后我们逐句分析

  • 首先第一行代码就是生成一个元素放入temp变量中
  • 第二行代码则是定义一个cryptStrInput变量,定位生成的元素中class=cryptStr样式传入我们的val参数也就是我们的明文密码
  • 第三行将此元素添加到body的最后一行
  • 第四行找到class=btnCrypt样式进行点击
  • 第五行定义一个变量cryptStr令它等于变量cryptStrInput里的值
  • 第六行删除temp元素
  • 第七行返回cryptStr

分析完逻辑后很明显的看出来,有一段代码调用了点击函数然后用加密函数在里面进行加密,至于为什么程序员要大费周章的这样生成元素来进行加密而不是直接在cryptStr函数编写加密代码段呢?理由也十分简单,因为这样的话内存调用栈也就追踪不到关键加密函数,这是对逆向十分头疼的.但是我们前面分析了关键在于click了btnCrypt,然后调用函数.正所谓办法总比困难多,我们可以在宇宙第一的chrome浏览器中查看监听事件,看看click指向了那里的函数

在这里插入图片描述
可以很明显的看到click只有一个函数参与调用了,不出意外这里面就是关键的加密代码,点进去看看
在这里插入图片描述
到这里也就十分容易分析了,首先获取明文密码,然后获取cookie中的randomYes的值,如果密码中已经包含了randomYes值说明已经加密过了所以直接返回,下面则是判断三个cookie是否存在,存在就传入到sessionCookie变量中,后面的代码如下

sessionCookie = sessionCookie || "undefined";
var randomId = encrypt(cryptStr,sdc(sessionCookie + randomYes));
$(".cryptStr").val(randomId + randomYes);

定义randomId变量,然后调用encrypt函数传入两个参数,一个是明文密码,另一个则是sdc函数将sessionCookie + randomYes进行加密返回值,很明显的看出加密函数是AES加密,模式为ECB模式,填充为Pkcs7方式填充(不熟悉AES加密的同学此时可以百度一下获取新知识,这里不过多描述)然后传入text参数,以及密钥secKey,加密完后到文本返回加密后的数值.至于sdc函数小编点进去看了一眼并没有看出个所以然来,所以待会写python登录的时候只能将直接调用JS文件中的sdc函数进行生成(希望以后回来看自己文章能明白sdc函数的加密方式是什么,当然也可以大牛上github来一起研究看看是什么方式的加密).

总结

理顺了具体的加密逻辑后写python登录也基本上没什么难度了,有兴趣看的同学可以上我的github一起学习交流,本网站逆向主要有两大点需要注意

  1. 当Call Stack追踪不到我们想要的函数时候怎么办?需要从多方面角度分析,办法总比困难多,除非是不存在的代码我们才追溯不到本源!
  2. 遇见了陌生的函数,这在逆向中是十分需要警惕的一件事,当你对加密函数看不懂的时候就代表你逆向出现了障碍,逻辑效率等方面都会出现偏差,sdc函数可能只是改了个名的常用加密方式,但是小编并没有看出来,这是十分不应该的,就算是网站程序员自己写的加密函数也应该一步步去分析其逻辑,但是本网站的加密方法已经禁止了你进行动态调试,追踪这条路自然也无从下手!希望能有大佬站出来为小弟排忧解难
  • 顺带一提,本文分析后的py文件已经放入github中,有需要一起学习分析的同学可以上github查看

my github

欢迎来全世界最大的同性交友网站和我一起学习交流


http://chatgpt.dhexx.cn/article/wAURdu5P.shtml

相关文章

破解 jar 包之直接修改 .class 文件方式

一、常规 JAVA 软件破解流程 先讲一下常规jar包的破解流程。 1. 快速定位。 1) 通过procmon监控相关软件&#xff0c;查看程序都访问了些啥。 2) 用jd-gui反编译 jar 包&#xff0c;得到源码。 3) 搜索关键字以定位。 这种定位方法只是千万种中的一种&#xff…

Maven项目整合MyBatis、Spring、Springmvc

一、MyBaits 1. MyBatis简介(了解) 1.1. 什么是MyBatis MyBatis 本是apache的一个开源项目iBatis&#xff0c;2010年这个项目由apache software foundation 迁移到了google code&#xff0c;并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个优秀的持久层框架&…

Git正解 脱水版 【10. 内部机制】

a.1 底层命令 之前大概介绍了30个Git常用命令,比如checkout/branch/remote等,由于Git的最初目标是一个工具集合,而不是VCS系统,因此包含了大量的底层命令,以便在类Unix系统的脚本中调用,所以这类命令被称为底层命令,而那些对用户更友好的命令,被称为封装命令.之前的介绍以封装…

微服务知识以及项目实战

01-Spring Boot 快速入门 Spring Boot 简介 Spring 作为一个软件设计层面的框架&#xff0c;在 Java 企业级开发中应用非常广泛&#xff0c;但是 Spring 框架的配置非常繁琐&#xff0c;且大多是重复性的工作&#xff0c;Spring Boot 的诞生就解决了这一问题&#xff0c;通过…

SQLMap使用攻略及技巧分享

SQLMap使用攻略及技巧分享 1.1 sqlmap简介1.2 下载及安装1.3 SQL使用参数详解1.4 实际利用以下为实战内容 sqlmap是一个开源的渗透测试工具&#xff0c;可以用来进行自动化检测&#xff0c;利用SQL注入漏洞&#xff0c;获取数据库服务器的权限。它具有功能强大的检测引擎,针对各…

Golang Devops项目开发

1.1 GO语言基础 1 初识Go语言 1.1.1 开发环境搭建 参考文档&#xff1a;《Windows Go语言环境搭建》 1.2.1 Go语言特性-垃圾回收 a. 内存自动回收&#xff0c;再也不需要开发人员管理内存 b. 开发人员专注业务实现&#xff0c;降低了心智负担 c. 只需要new分配内存&#xff0c;…

Clickhouse-MergeTree原理解析

MergeTree原理解析 表引擎是ClickHouse设计实现中的一大特色。可以说&#xff0c;是表引擎决定了一张数据表最终的“性格”&#xff0c;比如数据表拥有何种特性、数据以何种形式被存储以及如何被加载。ClickHouse拥有非常庞大的表引擎体系&#xff0c;截至本书完成时&#xff0…

Python数据分析高薪实战第七天 数据解析和电商行为分析案例

15 时间序列&#xff1a;时间数据的解析与应用 在很多数据分析任务中&#xff0c;经常会遇到处理时间相关的数据。比如电商网站经常需要根据下单记录来分析不同时间段的商品偏好&#xff0c;以此来决定网站不同时间段的促销信息&#xff1b;又或者是通过对过去十年的金融市场的…

C++语法整理(From GitHub)

&#x1f4d6; Github    |    &#x1f4da; Docsify 简体中文    |    English &#x1f4a1; 关于 &#x1f4da; 本仓库是面向 C/C 技术方向校招求职者、初学者的基础知识总结&#xff0c;包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经…

28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架

20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语言进行机器学习的开源项目&#xff0c;并挑选出最受欢迎和最活跃的项目。”图1&#xff1a;在GitHub上用Python语…

十分钟的爬虫erAST解混淆

前言 本文大约4000字&#xff0c;阅读大约时间10分钟。 可以一口气读完入门在爬虫er手中如何使用AST去解混淆。 正文 抽象语法树&#xff08;Abstract Syntax Tree&#xff09;通常被称为AST语法树&#xff0c;指的是源代码语法所对应的树状结构。也就是一种将源代码通过构…

什么是目标检测?github项目解析(持续更新中)

温馨提示&#xff1a;文章内容完整但是过长&#xff0c;由于前后内容有关联&#xff0c;读者学习可以多开几个浏览器分屏有助于定位 目录 目标检测理论部分&#xff1a; 1.目标检测介绍 2.YOLOv5的检测原理 3.目标检测的意义 4.目标检测的应用场景 5.先行知识储备 &…

2021年你必须拥有的10个最流行和最基本的Linux应用

点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复“大礼包”有惊喜礼包&#xff01; 每日英文 If you’re brave to say “good bye”, life will reward you with a new “hello”. -- Paulo Coelho. 如果你勇于对过去说“拜拜”&#xff0c;生活就会回赠给…

中国linux系统

对于广大电脑初级用户来说,Windows就是操作系统的代名词。但“天外有天,OS外有OS”,操作系统并非只有Windows一种。早在Windows诞生之前,Unix、Macintosh这些知名的操作系统就已经存在。只是因为Windows占据了操作系统绝大部分的市场份额,所以许多用户都不太熟悉Windows之…

Linux 下一代架构基金会宣布:联合腾讯等企业和社区,发力微服务标准化建设

2022年3月23日&#xff0c;NextArch 基金会正式宣布成立微服务 SIG&#xff08;Special Interest Group&#xff0c;以下简称“微服务技术组”&#xff09;&#xff0c;来自腾讯、字节跳动、七牛云、快手、BIGO、好未来和蓝色光标等多家企业的技术专家成为首批成员。 该小组聚…

2021年你应该拥有的10个最流行和最基本的Linux应用

前言 本文介绍了预计在2021年最受欢迎的十大Linux应用程序。那么现在让我们看看这个列表。 您是否正在寻找适合台式机或笔记本电脑的最佳Linux应用程序&#xff0c;以带您进入2021年&#xff1f;在本文中&#xff0c;我们将列出您必须在Linux操作系统上安装的最流行的Linux应用…

关于 Linux

Linus(林纳斯托瓦兹)&#xff1a;Linux 的开发作者&#xff0c;被称为Linux 之父&#xff0c;Linux 诞生时是芬兰赫尔辛基大学的在校大学生。 Stallman 斯特曼&#xff1a;开源文化的倡导人。 2、Linux 的含义 狭义&#xff1a;由Linus 编写的一段内核代码。 广义&#xff…

linux发展现状和学习建议

一、Linux在各领域发展的现状与趋势 很多新手都有一个很疑惑的问题&#xff1a;“Linux我听过&#xff0c;但是学习linux系统&#xff0c;能在上面干什么呢&#xff0c;或者说linux系统具体能做什么”&#xff0c;带着这个疑问&#xff0c;在本书的开篇&#xff0c;我们先来了解…

linux哪国的,Linux是什么它是哪个国家开发的

摘要 腾兴网为您分享:Linux是什么它是哪个国家开发的&#xff0c;信用管家&#xff0c;天天爱&#xff0c;美食天下&#xff0c;美甲帮等软件知识&#xff0c;以及平安app金管家&#xff0c;美发秀秀&#xff0c;圈子账本&#xff0c;传媒人&#xff0c;绝望表情包&#xff0c;…

Linux系统在信息社会的发展

随着信息技术的高速发展并迅速渗透到社会生活的各个方面&#xff0c;Linux日益成为人们学习、工作、生活不可缺少的基本工具&#xff0c;再过不了几年&#xff0c;不会使用Linux&#xff0c;就会象不识字一样使人举步维艰。进入大学&#xff0c;Linux无时无刻在伴随着我们&…