前端JS加密对抗由浅入深-1

前言:

本文主要讲解,针对前端加密数据传输站点,如何进行动态调试以获取加密算法、秘钥,本次实验不涉及漏洞挖掘,仅为学习演示,环境为本地搭建环境

此次站点加密方式为AES加密方式,现如今越来越多的站点使用前端数据加密,或AES、或RSA、或SM2/SM4(国产替代RSA),或干脆进行签名校验,导致安全测试测试成本提高不少,也将很多不熟悉加密测试的测试人员拒之门外,而关于前端调试的文章总是少之又少,懂的人又总是含糊其辞,本篇文章将以最快的速度、最笨的方式教会大家,如何进行快速定位加密函数

首先我们观看下图,下图password字段为加密字段
在这里插入图片描述
在这里插入图片描述
打开浏览器的F12进行开发者调试,重新登录一次而后查看网络选项
在这里插入图片描述
这么老多,先随便打一个断点试试,直接点击右侧蓝色链接,会自动跳转到关键点位,然后直接打断点即可
在这里插入图片描述
在这里插入图片描述
而后需要重新点击登录按钮,可以发现会话会直接在断点处停止,而后返回控制台,在控制台可以输入字符串或函数来查验结果
在这里插入图片描述
大家可以看到,此时断点并没有直接打到加密之前的位置,那么此时就需要往前打断点,由于函数被处理过,所以需要多打几个断点进行推测
在这里插入图片描述
再次调试,芜湖,看到了明文和密文在一起了
在这里插入图片描述
那么结果显而易见,je(ot);关键函数,这里面有事儿啊,二话不说直接加一个断点,重新调试,需要注意的是,这次不能F10了,直接F9
在这里插入图片描述
F9可以直接进入到这个函数,此时还是明文的
在这里插入图片描述
继续F9
在这里插入图片描述
不用看了,直接拿下key
在这里插入图片描述
在这里插入图片描述
此处结束,本次实验采取的是静态硬编码秘钥,AES加密,实际上现在大多数的站点加密方式已经改用动态秘钥的AES配合RSA对站点进行加密了,而RSA是不可逆的非对称性加密,若是遇到这种站点,即便是拿到了公钥,也很难通过Burpsuite进行测试了,毕竟现在市面上似乎没有那种多种加密配合的插件,而写插件的难度无疑是很高啊,但是如果每个接口都写脚本的话,那无疑会增加测试时间和成本,所以如果遇到这种情况该如何解决呢?让我们带着疑问,期待下期,AES+RSA加密的案例吧!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库主从复制和读写分离

目录 一、MySQL主从复制和读写分离理论 (一)读写分离 1.什么是读写分离 2.为什么要读写分离 3.什么时候要读写分离 4.读写分离原理 5.常见MySQL 读写分离 (1)基于程序代码内部实现 (2)基于中间代理…

React基础应用及常用代码

目录 基础知识 babel.config.js js,html,css,Vue,react,angular,nodejs,webpack,less,ES6,commonjs等的关系 ECMAScript 6(ES6) let、const、var 的区别 Webpack、npm、node关系 props和state区别 通用框架类 ES 6 export React React.Fragm…

数字IC后端实现之Innovus TA-152错误解析(分频generated clock定义错误)

**ERROR: (TA-152): A latency path from the ‘Fall’ edge of the master clock at source pin… Error Code TA-152 在数字IC后端实现innovus中我们经常会看到这类Error,具体信息如下所示。 Error Message **ERROR: (TA-152): A latency path from the ‘Fa…

面试题:谈谈分布式一致性机制 ?

文章目录 前言基本原则与理论2PC3PCPaxosRaftGossipNWR 机制Quorum 机制Lease机制 前言 分布式中一致性是非常重要的,分为弱一致性和强一致性。 现在主流的一致性协议一般都选择的是弱一致性的特殊版本:最终一致性。下面就从分布式系统的基本原则讲起&…

1.4 day4 IO进程线程

使用两个子进程进行文件拷贝&#xff0c;父进程进行资源回收 #include <myhead.h> int main(int argc, const char *argv[]) {//创建一个文件描述符并以只读的方式打开int fd-1;if((fdopen("./test.bmp",O_RDONLY))-1){perror("open error");return…

Pandas教程(五)—— 数据分组聚合及批处理

1.GroupBy机制 groupby分为三个步骤&#xff1a; 拆分-应用-合并 拆分操作是在特定轴向上进行的&#xff0c;dataframe可以在 行方向&#xff08;axis0&#xff09;/ 列方向 上分组分组后会产生groupby对象&#xff0c;我们就可以将函数应用在groupby对象的各个组中&#x…

Python基础入门第八课笔记(自定义函数 lambda)

什么时候用lambda表达式&#xff1f; 当函数有一个返回值&#xff0c;且只有一句代码&#xff0c;可以用lambda简写。 2、lanbda语法 lambda 形参 : 表达式 注意&#xff1a; 1、形参可以省略&#xff0c;函数的参数在lambda中也适用 2、lambda函数能接收任何数量的参数但只能…

LeetCode(38)外观数列⭐⭐

「外观数列」是一个整数序列&#xff0c;从数字 1 开始&#xff0c;序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列&#xff1a; countAndSay(1) "1"countAndSay(n) 是对 countAndSay(n-1) 的描述&#xff0c;然后转换成另一…

Element UI:时间组件,支持开始结束时间任选其一

一、背景 Element-UI中时间段组件el-date-picker&#xff0c;需要开始时间和结束时间都选择上&#xff0c;但是业务场景更多的是区间中可以只选择其中一个或开始时间和结束时间都选择 1.el-date-picker&#xff1a;开始时间与结束时间必须同时选择 2.业务需求&#xff1a;开…

计算机创新协会冬令营——暴力枚举题目06

我给大家第一阶段的最后一道题就到这里了&#xff0c;下次得过段时间了。所以这道题简单一点。但是足够经典 下述题目描述和示例均来自力扣&#xff1a;两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target …

R2 + PicGo:教你搭建免费图床并实现快速上传和压缩图片

图片是网站中的重要元素&#xff0c;它们可以增加视觉效果&#xff0c;吸引读者的注意力&#xff0c;传达信息和情感。但是&#xff0c;图片也会占用很多的存储空间和流量&#xff0c;如果您使用传统的图床服务&#xff0c;可能会遇到以下问题&#xff1a;费用高昂、速度慢、容…

雨课堂作业整理2

第十九次作业 1.设 G G G 为无环图&#xff0c;如果把 G G G 的每条边都染上颜色&#xff0c;使得相邻的边的颜色不同&#xff0c;则这种染法为边着色。该说法&#xff08; &#xff09;。 A.正确 B.错误 2.设 G G G 如下图所示&#xff0c;则 G G G 是 3 3 3 边可着色的…