js前端数据加密 CryptoJS库加密 黑盒情况下寻找web的加密算法 代码混淆

前言 

前端的数据加密是对用户的输入的一个常见的加密方法   还有的就是防止我们的sql注入 如 id=MQ==   这个其实解密出来就是 id = 1    所以注入的思路就是  把 1和payload 一起加密然后 再进行注入

客户端的加密 => 数据加密传输 => 服务端解密 => 服务端的处理
传输的数据

1   加密   xxx  payload     xxx  payload     解密 (解码不出来只能 把payload 进行加密 才能进行执行)  1 

直接进行注入

 这样就可以进行注入了    后端解密出来还是 我们相应的代码

CryptoJS库加密

    <script src="./crypto.js">
        //引入加密库
        //使用库内函数进行加密
    </script>
    // base64加密

    <script>
        var str = "xiaodisec";
        var base64 = btoa(str); //btoa是原生态的
        console.log(base64);
    </script>

  //MD5加密
  var md5str=CryptoJS.MD5(base64str).toString();
  console.log(md5str);

  //SHA1加密
  var shastr = CryptoJS.SHA1(str).toString(); // 注意:1是数字1
  console.log(shastr)

  //HMAC加密
  var key = 'key';
  var hash = CryptoJS.HmacSHA256(key, str);
  var HMACstr = CryptoJS.enc.Hex.stringify(hash);
  console.log(HMACstr);

  // 使用AES进行加密   //模式是ECB的时候是不需要key的
  var aseKey = "aeskey"     // 定制秘钥,长度必须为:8/16/32位, 长度不一致也没问题
  // 加密 DES/AES切换只需要修改 CryptoJS.AES <=> CryptoJS.DES
  var aesstr = CryptoJS.AES.encrypt(str, CryptoJS.enc.Utf8.parse(aseKey),  // 参数1=密钥, 参数2=加密内容
          {
            mode: CryptoJS.mode.ECB,// 为AES的工作方式
            padding: CryptoJS.pad.Pkcs7  // 当加密后密文长度达不到指定整数倍(8个字节、16个字节)则填充对应字符
          }
  ).toString(); // toString=转字符串类型
  console.log(aesstr); // 在弹窗中打印字符串

  // 使用DES进行加密
  var deskey = "deskey"     // 定制秘钥,长度必须为:8/16/32位, 长度不一致也没问题
  // 需要加密的内容
  // 加密 DES/AES切换只需要修改 CryptoJS.AES <=> CryptoJS.DES
  var desstr = CryptoJS.DES.encrypt(str, CryptoJS.enc.Utf8.parse(deskey),  // 参数1=密钥, 参数2=加密内容
          {
            mode: CryptoJS.mode.ECB, // 为DES的工作方式
            padding: CryptoJS.pad.Pkcs7  // 当加密后密文长度达不到指定整数倍(8个字节、16个字节)则填充对应字符
          }
  ).toString(); // toString=转字符串类型
  console.log(desstr); // 控制台打印 CDVNwmEwDRM

RSA加密 需要重新导入一个库

        //RSA 加密   这个需要公钥和私钥     
        var PUBLIC_KEY = "";
        var PRIVATE_KEY = "";

        //公钥加密
        var encrypt = new JSEncrypt(); //实例化加密对象
        encrypt.setPublicKey(PUBLIC_KEY); //设置公钥
        var encrypted = encrypt.encrypt(str); //对指定数据进行加密
        console.log(encrypted);

        //私钥解密
        var decrypt = new JSEncrypt(); // 创建解密对象
        decrypt.setPrivateKey(PRIVATE_KEY); //设置私钥
        var uncrypted = decrypt.decrypt(encrypted); //解密 'xiaodisec'
        console.log(uncrypted);

好用的解密网站 : 在线AES加密解密、AES在线加密解密、AES encryption and decryption--查错网

黑盒情况下寻找web的加密算法

第一个演示是自己写的这个 

思路 : 找到前端的加密逻辑然后   再截取加密的方法   使用前端的加密方法进行加密   这个就是和他相同的逻辑

前端就是一个登录页面

    <script src="https://unpkg.com/axios/dist/axios.min.js "></script>
    <script src="crypto-js.js"></script>
    <script>
        $('button').click(function() {
            var str = $('#password').val();
            var key = "aeskey";
            var aesstr = CryptoJS.AES.encrypt(str, CryptoJS.enc.Utf8.parse(key), // 参数1=密钥, 参数2=加密内容
                {
                    mode: CryptoJS.mode.ECB, // 为AES的工作方式
                    padding: CryptoJS.pad.Pkcs7 // 当加密后密文长度达不到指定整数倍(8个字节、16个字节)则填充对应字符
                }
            ).toString();


            axios({
                method: "POST ",
                url: "login.php ",
                data: {
                    user: $('#user').val(),
                    password: aesstr
                }
            }).success(function(res) {
                // console.log("登录成功 ");
                if (res['infocode'] == 1) {
                    alert("登录成功 ");
                    Location("houtai.html")

                }
            })

        }); // 点击按钮触发事件
    </script>

这个时候我们如果想要进行弱口令爆破  就得找到加密逻辑

先找到加密逻辑的路径  :  当前的路径 就是  login.html

找到加密逻辑   复制一下

把空格删除掉sec 加密:lGqGMg7PmMYqT/aQHPI0gg==

怎么找key   就看前端有没有泄露

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

window平台上qtcreator上使用opencv报错

平台&#xff1a;win11 随便在网上下载一个别人编译好的opencv,发现运行报错 发现此次下载的opencv&#xff0c;别人在编译时选用的mingw版本应该和我电脑目前安装的mingw的版本不太一致 右键桌面的qtcreator图标&#xff0c;进入Tools目录&#xff0c;可以看到mingw的版本是…

Android之APP更新(通过接口更新)

文章目录 前言一、效果图二、实现步骤1.AndroidManifest权限申请2.activity实现3.有版本更新弹框UpdateappUtilDialog4.下载弹框DownloadAppUtils5.弹框背景图 总结 前言 对于做Android的朋友来说&#xff0c;APP更新功能再常见不过了&#xff0c;因为平台更新审核时间较长&am…

数字信任的底层逻辑:密码学核心技术与现实应用

安全和密码学 --The Missing Semester of Your CS Education 目录 熵与密码强度密码散列函数密钥体系 3.1 对称加密 3.2 非对称加密信任模型对比典型应用案例安全实践建议扩展练习杂项 密码学是构建数字信任的基石。 本文浅析密码学在现实工具中的应用&#xff0c;涵盖 1&…

达梦有没有类似oerr的功能

在oracle 23ai的sqlplus中&#xff0c;直接看异常信息说明&#xff1a; 达梦没有此功能&#xff0c;但是可以造一个 cd /home/dmdba cat >err.sql<<eof set echo off set ver off set timing off set lineshow off set feedback off select * from V\$ERR_INFO wher…

linux--多进程开发(5)--进程

进程间通讯概念 每两个进程之间都是独立的资源分配单元&#xff0c;不同进程之间不能直接访问另一个进程的资源。 但不同的进程需要进行信息的交互和状态的传递等&#xff0c;因此需要进程间通信&#xff08;IPC,inter processes cimmunication) 进程通信的目的&#xff1a; …

(二)趣学设计模式 之 工厂方法模式!

目录 一、 啥是工厂方法模式&#xff1f;二、 为什么要用工厂方法模式&#xff1f;三、 工厂方法模式怎么实现&#xff1f;四、 工厂方法模式的应用场景五、 工厂方法模式的优点和缺点六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博…

【c语言】字符函数和字符串函数(1)

一、字符分类函数 c语言中有部分函数是专门做字符分类的&#xff0c;也就是一个字符是属于什么类型的字符&#xff0c;这些函 数的使用要包含一个头文件ctype.h中。 其具体如下图所示&#xff1a; 这些函数的使用方式都类似&#xff0c;下面我们通过一个函数来看其…

网络安全 机器学习算法 计算机网络安全机制

&#xff08;一&#xff09;网络操作系统 安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括访问控制和隔离控制。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型&#xff1a; 自主访问控制强制访问控制 访问控制措施&#xff1a; 入…

企业级大模型应用的Java-Python异构融合架构实践

一、后端语言相关技术生态 Python语言 Python在AI计算领域拥有全面的生态支持&#xff1a; 底层工具库: Pandas、NumPy、SciPy、Matplotlib深度学习框架: PyTorch、TensorFlow领域专用框架: HuggingFace Transformers&#xff08;社区生态为主&#xff09; 常见Python框架 …

Apache Doris 索引的全面剖析与使用指南

搞大数据开发的都知道&#xff0c;想要在海量数据里快速查数据&#xff0c;就像在星图里找一颗特定的星星&#xff0c;贼费劲。不过别慌&#xff0c;数据库索引就是咱们的 “定位神器”&#xff0c;能让查询效率直接起飞&#xff01;就拿 Apache Doris 这个超火的分析型数据库来…

HTTP/HTTPS 服务端口监测的简易实现

一 HTTP/HTTPS 服务端口监测的简易实现方法 在当今快节奏的工作环境中&#xff0c;工作忙碌成为了许多职场人的常态。就拿我们团队最近经历的事情来说&#xff0c;工作任务一个接一个&#xff0c;大家都在各自的岗位上争分夺秒地忙碌着。然而&#xff0c;就在这样高强度的工作…

基于数据可视化学习的卡路里消耗预测分析

数据分析实操集合&#xff1a; 1、关于房间传感器监测数据集的探索 2、EEMD-LSTM模型择时策略 — 1.EEMD分解与LSTM模型搭建 3、EEMD-LSTM模型择时策略 — 2. 量化回测 4、国际超市电商销售数据分析 5、基于问卷调查数据的多元统计数据分析与预测&#xff08;因子分析、对应分…

【初阶数据结构】链表的柔光之美

目录 一、为什么需要链表&#xff1f; 二、链表与数组的对比 三、链表节点定义 四、链表基本操作 1. 创建链表 2. 插入节点 头插法&#xff08;时间复杂度O(1)&#xff09; 尾插法&#xff08;时间复杂度O(n)&#xff09; 3. 删除节点 4. 遍历链表 五、进阶操作 1. 反…

计算机网络:应用层 —— 电子邮件

文章目录 电子邮件的起源与发展电子邮件的组成电子邮件协议邮件发送和接收过程邮件发送协议SMTP协议多用途因特网邮件扩展MIME 电子邮件的信息格式 邮件读取协议邮局协议POP因特网邮件访问协议IMAP 基于万维网的电子邮件 电子邮件&#xff08;E-mail&#xff09;是因特网上最早…

AWVS(web)扫描器安装与使用

目录 前言 1. AWVS 简介与功能特性 1.1 什么是 AWVS&#xff1f; 1.2 主要功能特性 2. AWVS 的安装步骤 2.1 系统要求 2.2 安装步骤&#xff08;以 Windows 为例&#xff09; 3. 配置与初始化 3.1 设置扫描目标 3.2 配置扫描选项 4. AWVS 的使用方法 4.1 自动扫描 …

opencv的C++遇到找不到opencv_worldxxxd.dll

如图所示&#xff1a; 将你缺的这个dll文件复制到 C:\Windows\System32 即可

AI提示工程的挑战与演进

目前让AI按照工作流正确的工作依然存在着提示挑战&#xff0c;提示工程实际上是一套逻辑严密的工作。 根据当前技术发展及行业实践&#xff0c;AI按照工作流正确执行任务仍面临显著的提示工程挑战&#xff0c;而提示工程本身也正在从零散经验向系统化、逻辑严密的方法论演进。以…

微信小程序-二维码绘制

wxml <view bindlongtap"saveQrcode"><!-- 二维码 --><view style"position: absolute;background-color: #FFFAEC;width: 100%;height: 100vh;"><canvas canvas-id"myQrcode" style"width: 200px; height: 200px;ba…

蓝桥杯第十六届嵌入式模拟编程题解析

由硬件框图可以知道我们要配置LED 和按键 LED 先配置LED的八个引脚为GPIO_OutPut&#xff0c;锁存器PD2也是&#xff0c;然后都设置为起始高电平&#xff0c;生成代码时还要去解决引脚冲突问题 按键 按键配置&#xff0c;由原理图按键所对引脚要GPIO_Input 生成代码&#xf…

电子科技大学考研复习经验分享

电子科技大学考研复习经验分享 本人情况&#xff1a;本科就读于电科软院&#xff0c;24年2月开始了解考研&#xff0c;24年3月开始数学&#xff0c;9月决定考本院&#xff08;开始全天候图书馆学习&#xff09;并开始专业课学习&#xff0c;11月底开始政治学习&#xff0c;最后…