• 高校教务系统密码加密逻辑及JS逆向——皖南医学院


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

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

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

    一、密码加密基本概念

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

    1.1 加密过程

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

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

    1.2 解密过程

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

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

    2.1 抓包

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

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

    我们看到只有密码被加密了,有的高校会加密用户名也就是学号,我们后面遇到再说。这个很明显是base64加密,你们可能看不出来,没关系,我带你去分析。

    base64介绍

    Base64是一种编码方式,将二进制数据转换为可打印的ASCII字符串。Base64编码使用64个字符来表示二进制数据中的每6个位,即使用6个比特来表示一个字符。编码后的字符包括大小写字母、数字和特殊字符“+”和“/”,共64个字符。

    Base64是一种常用的加密方式。通过Base64编码,可以将敏感数据转换为不可读的字符串,从而保护数据的安全性。Base64加密通常用于传输数据,如在HTTP请求和响应时以及在电子邮件中传输附件等。

    2.2 分析加密参数

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

    我们可以看到,加密方法在这里,调用了encode64(nvcpwd)方法,我们完全可以不用扣代码。

    三、JS逆向分析方法

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

    环境使用

    • python 3.9
    • pycharm
    • node

    代码实现

    1. //base64加密
    2. var CryptoJS = require("crypto-js");
    3. // var password = encode64('1234')
    4. var a = CryptoJS.enc.Utf8.parse('12345')
    5. var password = CryptoJS.enc.Base64.stringify(a)
    6. console.log(password)

    它使用CryptoJS库来将字符串“12345”转换为Base64编码。下面是具体的步骤:

    1. 使用CryptoJS.enc.Utf8.parse方法将UTF-8编码的字符串(在这里是'12345')转换为字节数组。
    2. 使用CryptoJS.enc.Base64.stringify方法将字节数组转换为Base64编码的字符串。

    这个Base64编码的字符串就是你的密码。通过console.log(password)打印出来。

    运行后的效果,可以看到和网页加密的值一模一样:

    安装crypto-js库

    使用npm或yarn来安装crypto-js

    npm install crypto-js

    四、总结

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

    五、累计更新

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


    持续更新中

    安徽工程大学

    合肥工业大学

    皖南医学院

    6adf31c8c5dd4e6a83314f4805b30bc1.jpg

  • 相关阅读:
    OpenSergo & Spring Cloud Alibaba 带来的服务治理能力
    centos 安装freeswitch
    分布式链路追踪(一)SkyWalking(1)介绍与安装
    如何在 Elasticsearch 中选择精确 kNN 搜索和近似 kNN 搜索
    JVM-虚拟机的故障处理与调优案例分析
    【算法】双向冒泡排序
    JAVA中的属性、方法、构造器,你真的弄懂了吗?
    java继承
    这应该是最全的机器学习模型可解释性的综述
    主动写入流对@ResponseBody注解的影响 | 京东云技术团队
  • 原文地址:https://blog.csdn.net/BROKEN__Y/article/details/133814334