高校教务系统登录页面JS分析——广东工业大学

高校教务系统密码加密逻辑及JS逆向

本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文,你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。

本文仅供交流学习,勿用于非法用途。

一、密码加密基本概念

密码加密是一种保护信息安全的技术手段,它通过将明文(原始信息)转换为密文(加密后的信息),以防止未经授权的访问和篡改。常见的密码加密算法有MD5、SHA-1、SHA-256等。

1.1 加密过程

加密过程通常包括以下步骤:

  1. 密钥扩展:将密钥扩展为多个轮值,每个轮值都与明文的一部分有关。
  2. 初始轮值生成:将扩展后的密钥与轮常数进行某种运算,生成第一轮加密的密文。
  3. 多轮迭代:对密文进行多轮迭代操作,每轮操作都包括非线性函数、模运算和轮常数的变换。
  4. 最终密文:经过多轮迭代后,得到最终的密文。

1.2 解密过程

解密过程与加密过程相反,通过反向操作来恢复原始明文。通常需要知道加密时使用的密钥和算法。

二、高校教务系统密码加密逻辑分析

2.1 抓包

我们首先打开教务系统的登录页面,我们可以看到,只有学号和密码,有的高校会有验证码,或者有的高校是错误一次密码,会验证验证码。

我们打开开发者工具,尝试登录抓包,网页会返回这样的数据接口。

我们可以看到密码被加密了,我们来看看其是怎么加密的。

2.2 分析加密参数

我们接下来,就是来分析这个密码是怎么加密的。我们全局搜索password。定位到加密的位置。

我们可以看到这里的加密方法,我们直接扣下来就可以了。而且,这里也注释的特别清楚。

三、JS逆向分析方法

逆向分析是指从已知的加密文本或程序中还原出原始信息的过程。在本例中,我们将使用JavaScript编写一个简单的逆向分析工具,用于逆向高校教务系统的密码。

环境使用

  • python 3.9
  • pycharm
  • node

代码实现

我们先把这些代码扣下来,运行看看缺什么补什么。

javascript 复制代码
var key = CryptoJS.enc.Utf8.parse(verifycode + verifycode + verifycode + verifycode);
var srcs = CryptoJS.enc.Utf8.parse(password)
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});
password = encrypted.ciphertext.toString();

console.log(password)

我们运行之后,发现报错,提示下面错误:

javascript 复制代码
ReferenceError: CryptoJS is not defined

我们这里完全可以不用去扣这个,因为这个有现成的库可以使用。

安装crypto-js库

使用npm或yarn来安装crypto-js:

复制代码
npm install crypto-js

安装完成之后,我们再来运行一下代码,会提示我们用两个参数未定义,我这里就不放过程了,由于比较简单。

完整代码

javascript 复制代码
var CryptoJS = require("crypto-js");
var password = '1234';//密码
var verifycode = '1234'//验证码


var key = CryptoJS.enc.Utf8.parse(verifycode + verifycode + verifycode + verifycode);
var srcs = CryptoJS.enc.Utf8.parse(password)
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});
password = encrypted.ciphertext.toString();

console.log(password)

这段代码是用JavaScript编写的,用于使用AES算法加密一个密码。它首先引入了'crypto-js'库,然后定义了一个明文密码和一个验证码。然后,它将验证码重复三次并串联起来,以创建一个16字节的密钥(这是AES-128密钥的长度)。接下来,它将明文密码转换为UTF-8格式,并使用这个密钥和ECB模式(不安全的模式)以及PKCS7填充进行加密。最后,它将加密后的密文转换回UTF-8字符串,并打印出来。

  • 我们看一下运行效果:
javascript 复制代码
662a5aae230dd1be88bf1b8dbdb38dc0

我们看到可以实现密码加密的过程,接下来,就可以实现模拟登录了。

四、总结

本文介绍了高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的方法。通过学习这些知识,你可以更好地理解密码加密技术的原理,并掌握一定的逆向分析技巧。请注意,逆向分析可能涉及到法律问题,请在合法范围内进行研究和实践。

五、累计更新

争取到到底早日更新30所高校,大家可以在评论区留言。

往期作品可以查看专栏👇👇👇

全国高校教务系统登录页面JS分析_爱吃饼干的小白鼠的博客-CSDN博客

相关推荐
ESDWAN29 分钟前
SD-WAN 企业选型与落地指南:从链路测试到网络架构设计
运维·网络·架构
DianSan_ERP1 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
编码者卢布1 小时前
【App Service 】WebJobs 多实例实验:谁在运行,什么时候运行?
开发语言·python
kaixin_learn_qt_ing1 小时前
Qt抽屉窗体实现demo
开发语言·qt
quantdash_cc1 小时前
Python 获取实时行情后如何进行批量筛选?从全市场快照到策略候选池
开发语言·python·数据分析·量化交易·股票数据·quantdash
论文复现现场1 小时前
论文复现看到“RTX 3090 or higher”:显存、CUDA、batch size 与 OOM 怎么判断?
开发语言·pytorch·batch·cuda·rtx3090
智鸟科技GemeOpen开发者智能设备1 小时前
GemeOpen 智能音箱 GSSM0B - 播放控制(Java示例)
java·开发语言·智能音箱
梦帮科技2 小时前
量子张量网络破局大模型:从矩阵乘积态 (MPS) 到张量列 (TT-SVD) 低秩收缩全推导
网络·数据结构·数据库·线性代数·矩阵·架构·模拟退火算法
m0_380743872 小时前
PHP 8.3 接口返回数据为空怎么排查
开发语言·php
潜创微科技2 小时前
一颗为网络摄像头而生的高度集成 SoC:SSC335DE 技术解析与选型参考
网络·以太网·评估板·参考设计