js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)

2023-11-05

        最近下班无聊,就看了一下之前写的教务系统模拟登录代码(python-爬虫),整体逻辑大概自己总结了一下:

        1.请求验证码图片。

        2.对输入的密码进行加密。

        3.封装账号,密码,验证码,发送post请求

但是在第2步的时候对输入的密码进行加密的过程中,我使用的方法是:

from Crypto.Cipher import AES

没错,就是调用python-Crypto.Cipher库中的AES,进行对密码进行加密处理,但是最近在工作上看到几个网站是带有js加密的进行加密处理,后面我就用到了js逆向解密解决了模拟登录的问题,后来我就想到能不能直接利用js逆向解决教务系统的AES密码加密操作,于是开始了实践:

一,网站抓包,分析请求

        我们可以看到其登录发起的请求是post请求(简注:需要带参数的请求),于是我们可以想到可以用post发送相应的参数进行模拟登录。

二,js逆向加密密码

1,基于上面的过程我们看到了上面的参数数值:

{

        account:

        password:

   verifycode:

}

通过分析,我们可以知道其参数只用对密码加密,其他数值都是明文,于是我们就可以对其进行加密:

================================重点部分=================================

首先,我们通过参数pwd进行索引,找到源代码中对密码加密的地方:

于是我们找到了js加密部分,于是我们打个断点找到其加密代码。

 根据其打的断点,我们可以看到,其关联的js加密即可跳转

我们看到在我们打的断点前,其密码是明文,于是我们知道在下面这段代码中就是对密码加密的过程,于是我们进入到内部。

        其js加密涉及到encrypt函数,看到这个代码我们就比较熟悉了,在加密时候我们就涉及到了这个函数,于是我们知道,这个函数一定涉及加密过程,于是将这个代码进行调试

。。。。。。。。按照上述断点方法,我们就可以写出我们的js调试代码了(里面有很多坑,本教程仅提供思路)

        经过多个断点以及分析,我们得到最终的js代码:

进行返回 我们的也得到了加密数据,我们对js代码进行封装,于是得到:

进行写入wuy.js,放入将要写发送网络请求的同一文件夹下。

 三,发送网络请求

 1,创建一个js类,将js代码功能封装:

封装好js代码之后,我们可以进行发送网络请求了

以上代码是测试代码,将验证码图片先获取,手动输入验证码及密码之后,密码加密措施利用封装好的类进行调用。最后,我们运行一次,可以看到教务系统返回我们的信息:

好了,大功告成!!!,可以抓取教务系统的各种数据的抓取了。

(以上教程仅供技术学习,不得用于其他用途。)

 若有任何问题,可联系本人

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考) 的相关文章

  • 为什么函数声明在不同浏览器中的处理方式不同?

    虽然我在谷歌中找不到对此的引用 但我熟悉这样一个事实 在 javascript 中 全局函数声明在执行任何代码之前都会被解释 换句话说 这工作得很好 f function f 但是 我注意到 chrome 和 firefox 对全局函数声明
  • Jupyter 笔记本中未显示绘图图表

    我已经尝试解决这个问题几个小时了 我按照上面的步骤操作情节网站 https plot ly python getting started start plotting online并且图表仍然没有显示在笔记本中 这是我的情节代码 color
  • 非法使用break语句; javascript

    当这个变量达到一定数量时 我希望循环停止 但我不断收到错误 未捕获的语法错误 非法的中断语句 function loop if isPlaying jet1 draw drawAllEnemies requestAnimFrame loop
  • Socket IO 服务器到服务器

    服务器是否可以使用 Socket IO 连接到另一个服务器并被视为客户端 并让它加入房间 接收 io sockets in lobby emit 和更多 第一个服务器也在监听连接 消息 嘿 Brad 下面是我的完整 js 应用程序 供参考
  • pygame:使用 sprite.RenderPlain 绘制精灵组的顺序

    我有一个精灵组 需要按一定的顺序绘制 以便其精灵按应有的方式重叠 然而 即使使用运算符模块函数 sorted self sprites key attrgetter y x 对组进行排序 顺序也是错误的 我该如何解决这个问题 直截了当地说
  • 引用自身的 Javascript 对象...有问题吗?

    由于 Javascript 允许通过引用分配复合值 因此如果 Javascript 对象引用自身 它将创建无限的引用集 如控制台中所示 这看起来像是某种无限循环 但 Chrome 似乎没有问题 这样做是否存在任何内存问题或其他风险 就记忆力
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • Python守护进程:保持日志记录

    我有一个将一些数据记录到磁盘的脚本 logging basicConfig filename davis debug log level logging DEBUG logging basicConfig filename davis er
  • Angularjs : $locationProvider.hashPrefix("!") ;

    我想将网址显示为 www test com 因为我正在使用 locationProvider hashPrefix 但它显示网址为 www test com 我想 哈希之前而不是哈希之后 Thanks var app angular mod
  • 使用 selenium 和 python 来提取 javascript 生成的 HTML?萤火虫?

    这里是Python新手 我遇到的是数据收集问题 我在这个网站上 当我用 Firebug 检查我想要的元素时 它显示了包含我需要的信息的源 然而常规源代码 没有 Firebug 不会给我这个信息 这意味着我也无法通过正常的 selenium
  • 使用 ng-if 改变角度方向

    我想通过单击将方向从 rtl 更改为 ltr and in 设置 html
  • 在 numpy 中连接维度

    我有x 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 2 3 I want 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 6 也就是说 我想连接中间维度的所有项目 在这种特殊情况下我可以得到这
  • 寻找完美的正方形

    我有这个Python代码 def sqrt x ans 0 if x gt 0 while ans ans lt x ans ans 1 if ans ans x print x is not a perfect square return
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • 使用 File API polyfill 读取数据 URL

    我正在尝试使用文件 API 库 https github com mailru FileAPI https github com mailru FileAPI 作为不支持文件 API 的浏览器的后备 以便将文件作为数据 URL 读取并将其传
  • 将 JSON 属性绑定到表单

    我有一个 JSON 对象和一个
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我
  • 如何获取符号名称(文字)?

    以下情况 var myVehicle brand Tesla var isMoving Symbol var currentStatus Symbol myVehicle isMoving true myVehicle currentSta
  • 如何在 scikit 中加载 CSV 数据并将其用于朴素贝叶斯分类

    尝试加载自定义数据以在 Scikit 中执行 NB 分类 需要帮助将示例数据加载到 Scikit 中 然后执行 NB 如何加载目标的分类值 使用相同的数据进行训练和测试 或使用完整的数据集进行测试 Sl No Member ID Membe
  • 区分 NaN 输入和输入类型为“number”的空输入

    我想使用 type number 的表单输入 并且只允许输入数字

随机推荐

  • 【五一创作】iSH修改hostname(主机名)【美化】【短篇技术类文章】

    最后一次更新 2023 4 30 请勿利用文章内的相关技术从事非法测试 由于传播 利用此文所提供的信息而造成的任何直接或者间接的后果及损失 均由使用者本人负责 作者不为此承担任何责任 文章目录 1 前言 简单 的介绍 2 踩坑 摸索 3 解
  • Arduin调节舵机的思路

    一 先判断舵机能够调节的最大值和最小值 二 让舵机转动能够平滑 三 用二维数组和for循环实现码垛机器人的效果 四 机械臂在指令模式的基础上增加手柄模式 手柄模式可以 通过键盘上字符按键操控舵机机械臂 五 通过蓝牙模块进行蓝牙无线设备连接
  • Python读取mat文件-转csv文件

    这篇教程主要介绍如何使用Python读取mat文件并且转csv文件 一 读取mat文件和转CSV 首先将MATLAB生成的mat文件存储在一个目录下 import pandas as pd import scipy from scipy i
  • 王者荣耀服务器维护七月,《王者荣耀》7.28不停服维护更新攻略教程 7月28日更新公告...

    在王者荣耀的游戏中 7月28日进行了不停服的更新维护 此次更新除了常规的修复以外 还带来了蔷薇珍宝阁活动 接下来就让小编带大家一起来看看详细的内容吧 王者荣耀2021年7月28日全服不停机更新公告 更新时间 7月28日8 30 9 30 更
  • RL 暂态电路与磁能

    前言 RL 电路是一个电阻 R 和 自感线圈 L 组成的 RL 电路 在连接或者接通电源U 的时候 由于自感电动势的作用 电路中的电流不会瞬间改变 而是一个连续的渐变的过程 通常这个时间很短暂 所以被称为暂态过程 正文 看看书上是怎么写的
  • 【iOS】—— APP启动流程

    文章目录 APP启动流程 冷启动和热启动 APP完整的启动流程 1 main函数执行前 系统会做的事 2 main函数执行后 3 首屏渲染完成后 Mach O APP启动流程 冷启动和热启动 冷启动 启动时 App的进程不在系统里 需要开启
  • CSS设置字间距、行间距、首行缩进

    CSS设置字间距 行间距 首行缩进 ps 本人亲测 阿里云2核4G5M的服务器性价比很高 新用户一块多一天 老用户三块多一天 最高可以买三年 感兴趣的可以戳一下 阿里云折扣服务器 字间距 1 text indent设置抬头距离css缩进 即
  • 大数据时代,区块链在数据安全领域有什么样的表现?

    大数据时代之下 一如我们无法抗拒科技进步带来的便捷及欢愉 我们同样也无法避免在享受这一切的过程中留下自己的 数字足迹 正因如此 数据如今已然被纳入企业的战略资源 开始指导决策 成为其提高行业核心竞争力的关键一环 当今的数字化时代 数据可谓是
  • ubuntu18.04安装GPU PyTorch

    转载自这篇文章 安装GPU版本的PyTorch 这里选择用pip进行安装 首先需要安装pip 执行命令sudo apt intall python pip3 该步骤可以跳过 现在建议配置pip虚拟环境 为此我们需要配置virtualenv
  • 一、用 ChatGPT 充当面试官

    目录 一 如何让 ChatGPT 充当面试官 1 1正确使用 1 2 反例 二 模拟面试 2 1 ChatGPT 让我介绍自己 2 2 ChatGPT 提问技术问题 2 2 1 技术问题 2 2 2 下一个问题
  • wifi名称可以有空格吗_但是名称中不能有空格

    Excel表格的每一个单元格都有一个默认的名称 其命名规则是列标加横标 例如A1表示第一列 第一行的单元格 如果要将某单元格重新命名 可以运用以下两种方法 工具 原料 Microsoft Office WPS Office 方法一 1 打开
  • [305]mysql1062错误:Duplicate entry '...' for key 'PRIMARY

    问题解释 Duplicate entry for key PRIMARY 即插入数据时 要插入数据的主键数据 已经存在 不能再重复添加了 例 Duplicate entry 0 for key PRIMARY是指主键为0的数据已经存在 不能
  • Linux常用命令大全(非常全!!!)

    前言 本文特点 授之以渔 了解命令学习方法 用途 不再死记硬背 拒绝漫无目的 准确无误 所有命令执行通过 环境为centos7 拒绝复制粘贴 实用性高 命令多为实际工作中用到的 实例讲解 拒绝纯理论 条理清晰 分类归纳 快速找到想要的命令
  • java疯狂讲义 笔记_《疯狂Java讲义》阅读笔记1

    2 2 UML统一建模语言 从粗粒度到细粒度 最常用的UML图 部署图 从物理处理器和设备的角度画图 其中一个设备中可能包括零个或若干个组件 用例图 表示的是一系列功能 一个用例表示系统的一个功能模块 如登录模块 组件图 多个类共同组成的j
  • OpenGL学习笔记(2)第一个程序——犹他茶壶(Teapot)

    好了 python opengl的开发环境搭建好后 我们就可以开始学习了 这里 我们先学习一个常见的例子 犹他茶壶 先贴代码 from OpenGL GL import from OpenGL GLU import from OpenGL
  • 【ReactNative/JS】uint8array转string convert uint8array to string

    客户端 服务器使用的protobuffer交互 客户端收到的是uint8array 面临着从unit8array转string 我使用的是下面的Crossplatform method Working with node js or oth
  • H3C官网-inode客户端下载

    打开 新华三官网 点击登录 用户名 yx800 密码 01230123 MacOS 安装 iNode Client 的事故与故事 提示 libCoreUtils dylib 将对您的电脑造成伤害 知乎 怎么用mac通过inode上网 知乎
  • js对象获取属性值的方法([]和.方式的不同)

    javascript获取目标对象的属性值 有两种方法 1 通过object key 即 的方式 2 通过object key 即 方式 下面用一个例子来说明 通过 方式获取属性值 key是静态值 即 h value 时 h是没有 为静态值
  • python中的生成器(generator)

    一 生成器 生成器是 Python 中非常有用的一种数据类型 它可以让你在 Python 中更加高效地处理大量数据 生成器可以让你一次生成一个值 而不是一次生成一个序列 这样可以节省内存并提高性能 二 实现generator的两种方式 py
  • js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)

    最近下班无聊 就看了一下之前写的教务系统模拟登录代码 python 爬虫 整体逻辑大概自己总结了一下 1 请求验证码图片 2 对输入的密码进行加密 3 封装账号 密码 验证码 发送post请求 但是在第2步的时候对输入的密码进行加密的过程中