js绕过-前端加密绕过
前端加密解密
前言
日常我们在工作时做安全测试或者日常的漏洞挖掘中,往往会遇到请求加密,参数加密的情况,而且绝大部分都是前端加密的情况,那么我们就可以手动调试跟踪去解决这个加密问题,对我们自己要发送的数据进行编码来帮助我们进行测试
前端加密定位方法
一般定位都会采用关键函数跟踪的方式,流程如下:
选择需要定位的标签,一般都是提交、登录、保存等按钮,通过这些按钮再去查找其中对应的事件函数,然后到调试器栏ctrl+shift+f全局搜索函数名定位,定位到关键函数后,对其打个断点,然后跟一跟基本就能确定走了什么加密流程。
随后就需要手工在控制台对函数进行调用对自己要测试的数据进行编码,当然也可以把这些js文件保存下来,通过python脚本调用js函数。
burp也有一个jsEncrypter插件,详情可以去github主页瞅瞅,是把js保存下来然后使用phantomjs调用加密函数对数据进行加密。
加密绕过实例
登录时抓包查看到数据包如下,可以看到passwd字段进行了明显的加密
一般密码加密会在登录事件进行加密处理,那么我们从这里开始跟踪,选中登录按钮右键检查元素定位。
可以看有一个checkusernew()函数,转到调试器,直接ctrl+sgift+f
全局搜索这个函数。
然后转到函数定义处,直接点击右侧加个断点
然后从新走登录流程,F10 步过、F11 步入、shift+F11 步出。
对关键函数如hex_md5和Encrypt需要跟进去看下做了什么。
跟进encrypt函数
我们需要去跟进获取加密的key和iv么,当然是不需要的,我们只需要在控制台调用执行即可
但是如何批量呢?有两种方案,一个直接在控制台写js代码或者拉取相应JS,调用python的PyExecJS模块。
我更倾向于直接在控制台调用
let arr = ['a', 'b', 'c', 'd', 'e'] //定义一个列表
var a = "" //定义一个空字符串
for (let i in arr) {a = a + Encrypt(hex_md5(arr[i])) + "\n"} //循环跑
最后输出字符a即可
其他情况
在测试过程遇到的情况往往可能要复杂的多,跟了半天都没有跟到关键函数也有可能发生。在加上web前端项目打包导致函数更加不好找。
这个时候就要果断放弃,打开下一个。
js绕过-前端加密绕过的更多相关文章
- 转发:RSA实现JS前端加密,PHP后端解密
web前端,用户注册与登录,不能直接以明文形式提交用户密码,容易被截获,这时就引入RSA. 前端加密 需引入4个JS扩展文件,jsbn.js.prng4.js.rng.js和rsa.js. <h ...
- RSA实现JS前端加密,PHP后端解密
web前端,用户注册与登录,不能直接以明文形式提交用户密码,容易被截获,这时就引入RSA. 前端加密 需引入4个JS扩展文件,jsbn.js.prng4.js.rng.js和rsa.js. <h ...
- Web暴力破解--前端JS表单加密进行爆破
0x01 前言 常见的js实现加密的方式有:md5.base64.shal,写了一个简单的demo作为测试. 0x02 代码 login.html <!DOCTYPE HTML> < ...
- js前端加密,php后端解密(crypto-js,openssl_decrypt)
来源:https://blog.csdn.net/morninghapppy/article/details/79044026 案例:https://blog.csdn.net/zhihua_w/ar ...
- RSA非对称性前端加密后端解密
前端加密代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...
- Java 前端加密传输后端解密以及验证码功能
目录(?)[-] 加密解密 1 前端js加密概述 2 前后端加密解密 21 引用的js加密库 22 js加密解密 23 Java端加密解密PKCS5Padding与js的Pkcs7一致 验证码 1 概 ...
- jsencrypt参数前端加密c#解密
写程序时一般是通过form表单或者ajax方式将参数提交到服务器进行验证,如何防止提交的请求不被抓包后串改,虽然无法说绝对安全却给非法提交提高了难度,本篇采用jsencypt在前端进行加密的并且用C# ...
- 前端加密MD5
今天接触了MD5加密方式,记录一下使用方法,又去搜了搜关于MD5的详细内容 MD5在vue中使用方法 1.下载MD5模块 cnpm install md5 -S 2.引入模块 const md5 = ...
- 再解决不了前端加密我就吃shi
参考文章 快速定位前端加密方法 渗透测试-前端加密测试 前言 最近学习挖洞以来,碰到数据做了加密基本上也就放弃了.但是发现越来越多的网站都开始做前端加密了,不论是金融行业还是其他.所以趁此机会来捣鼓一 ...
随机推荐
- 05 jumpserver权限管理
5.权限管理: 在同一个组下的用1户之间,资产是共享的. (1)为10.0.0.121_slavenode1资产授权: (2)为10.0.0.201_lc-pc资产授权: (3)查看授权列表:
- 37、mysql数据库(dcl)
在数据库中参考:"12.创建mysql用户及赋予用户权限"文件.
- Sherlock and His Girlfriend题解
题目描述 Sherlock 有了一个新女友(这太不像他了!).情人节到了,他想送给女友一些珠宝当做礼物. 他买了 n件珠宝.第i 件的价值是i+1.那就是说,珠宝的价值分别为2,3,4,-,n+1 . ...
- SpringBoot:SpringBoot中@Value注入失败
1. 第一步检测语法是否正确 @Value("${test}") private String test; 2.第二步检测配置文件中是否有进行配置 url=testusername ...
- windows服务器下MySQL配置字符集
这俩天公司使用.netcore微服务+mysql做项目,mysql在使用的时候总是出现一些字符集的问题,修改utf8或utf8mb4后mysql的服务就启动不了,这里做下记录如果把my.ini中的字符 ...
- 通过原生js实现数据的双向绑定
通过js实现数据的双向绑定 : Object.defineProperty了解 语法: Object.defineProperty(obj, prop, descriptor) obj 要定义属性的对 ...
- Maven项目导入Intellij IDEA
目录 1. 自动创建maven项目 2. 修改IDEA默认远程仓库,提高依赖包下载速度 3. 修改IDEA中maven设置 4. 将maven项目导入IDEA 坑:IDEA无法下载依赖包 1. 自动创 ...
- SpringBoot | 2.1 SpringBoot自动装配原理
@ 目录 前言 1. 引入配置文件与配置绑定 @ImportResource @ConfigurationProperties 1.1 @ConfigurationProperties + @Enab ...
- LeetCode 887. Super Egg Drop
题目链接:https://leetcode.com/problems/super-egg-drop/ 题意:给你K个鸡蛋以及一栋N层楼的建筑,已知存在某一个楼层F(0<=F<=N),在不高 ...
- 程序员们,还在挣扎着上不了github吗
前言 无兄弟,不篮球:无github,不代码.github和stackoverflow是程序员们的最爱,哪怕是github总是在抽疯,虐了程序员们千百遍,但他们还是想各种办法艰难地在github分享他 ...