js解密是什么意思(js文件加密防盗用方法)

前言日常我们在工作时做安全测试或者日常的漏洞挖掘中,往往会遇到请求加密,参数加密的情况,而且绝大部分都是前端加密的情况,那么我们就可以手动调试跟踪去解决这个加密问题,对我们自己要发送的数据进行编码来帮助我们进行测试前端加密定位方法一般定位都会采用关键

前言

日常我们在工作时做安全测试或者日常的漏洞挖掘中,往往会遇到请求加密,参数加密的情况,而且绝大部分都是前端加密的情况,那么我们就可以手动调试跟踪去解决这个加密问题,对我们自己要发送的数据进行编码来帮助我们进行测试

前端加密定位方法

一般定位都会采用关键函数跟踪的方式,流程如下:

选择需要定位的标签,一般都是提交、登录、保存等按钮,通过这些按钮再去查找其中对应的事件函数,然后到调试器栏ctrl+shift+f全局搜索函数名定位,定位到关键函数后,对其打个断点,然后跟一跟基本就能确定走了什么加密流程。

随后就需要手工在控制台对函数进行调用对自己要测试的数据进行编码,当然也可以把这些js文件保存下来,通过python脚本调用js函数。

burp也有一个jsEncrypter插件,详情可以去github主页瞅瞅,是把js保存下来然后使用phantomjs调用加密函数对数据进行加密。

加密绕过实例

登录时抓包查看到数据包如下,可以看到passwd字段进行了明显的加密

js解密是什么意思(js文件加密防盗用方法)

一般密码加密会在登录事件进行加密处理,那么我们从这里开始跟踪,选中登录按钮右键检查元素定位。

js解密是什么意思(js文件加密防盗用方法)

可以看有一个checkusernew()函数,转到调试器,直接ctrl+sgift+f全局搜索这个函数。

js解密是什么意思(js文件加密防盗用方法)

然后转到函数定义处,直接点击右侧加个断点

js解密是什么意思(js文件加密防盗用方法)

然后重新走登录流程,自动运行到断点处,然后F10 不过、F11 步入、shift+F11 步出。

对关键函数如hex_md5和Encrypt需要跟进去看下做了什么。

js解密是什么意思(js文件加密防盗用方法)

跟进encrypt函数

js解密是什么意思(js文件加密防盗用方法)

我们需要去跟进获取加密的key和iv么,当然是不需要的,我们只需要在控制台调用执行即可

js解密是什么意思(js文件加密防盗用方法)

但是如何批量呢?有两种方案,一个直接在控制台写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前端项目打包导致函数更加不好找。

这个时候就要果断放弃,打开下一个。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/24894.html

(0)
nan
上一篇 2021-09-13
下一篇 2021-09-13

相关推荐

  • C#写入TXT文本数据如何按列排列

    若要将数据按列排列写入到TXT文本文件中,可以使用StreamWriter类来实现。下面是一个示例代码:using System;using System.IO;class Program{static void Main(){string filePath = “data.txt”;using (StreamWriter writer = new StreamWriter(filePath

    2024-02-23
    0
  • 怎么用php求一个数组的和

    要计算一个数组的和,可以使用 PHP 中的 array_sum() 函数。以下是一个例子:在这个例子中,我们首先定义了一个包含一些数字

    2024-02-27
    0
  • linux中unmount怎么使用

    在Linux中,可以使用umount命令来卸载已经挂载的文件系统。umount的基本语法如下:umount [选项] 例如,要卸载挂载在/mnt目录下的文件系统,可以使用以下命令:umount /mnt在使用umount命令时,需要确保目标挂载点没有被其他程序占用,否则会提示“device is busy”错误。如果无法卸载目标挂载点,可以使用fuser命令查找并关闭占用该目录的程序

    2024-02-19
    0
  • Lua与其他编程语言相比有什么优势

    Lua相比其他编程语言具有以下优势:轻量级:Lua是一种轻量级的脚本语言,它具有小巧的代码库和高效的执行速度,适合嵌入到其他应用程序中使用。简单易学:Lua采用简洁的语法和强大的表达能力,易于学习和使用,适合快速开发原型和小型项目。高性能:Lua具有高效的执行速度和内存管理机制,能够快速地执行代码并且消耗较少的系统资源。可扩展性:Lua支持模块化和面向对象编程,可以方便地扩展功能和重用代码。跨平台

    2024-04-10
    0
  • 备案需要什么资料(税务备案需要什么资料)

    备案需要什么资料,税务备案需要什么资料内容导航:网站备案都需要提供什么资料审批局项目备案需要带什么资料外墙一体化备案需要哪些资料现在备案需要提供哪些资料一、网站备案都需要提供什么资料1、企业营业执照扫描件(彩色),正附本皆可。2、法人身份证正反两面扫描件(彩色)

    2022-05-03
    0
  • C#静态变量与继承:特殊情况处理

    在C#中,静态变量属于类级别的变量,它们在整个类的生命周期内存在,不依赖于类的实例化。当涉及到继承时,静态变量的处理可能会有一些特殊情况需要考虑。静态变量在继承中的继承和隐藏:子类可以继承父类的静态变量,并且可以通过子类名直接访问父类的静态变量。如果子类定义同名的静态变量,那么父类的静态变量会被隐藏,子类的静态变量会覆盖父类的静态变量。class Parent{public static int

    2024-04-27
    0

发表回复

登录后才能评论