Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

web,攻防,js,算法,逆向,断点,调试,代码,混淆,绕过 · 浏览次数 : 77

小编点评

**JS加密算法逆向方法** 1. **JS断点调试**:使用JS断点调试方法,观察加密算法文件的执行流程。 2. **代码混淆绕过**:使用JS加密混淆绕过算法,将加密算法文件在注入之前进行修改。 3. **参数注入**:通过参数注入绕过JS算法逆向,获取加密算法文件。 4. **代码分析**:在代码中寻找加密算法文件的流程断点。 5. **执行堆栈**:在代码执行流程中寻找加密算法文件,并查看其作用域。 6. **反调试**:利用JS解密工具,反向解析加密算法文件。 7. **代码混淆文件**:使用JS加密混淆绕过工具,将加密算法文件加密以隐藏其内容。

正文

Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

JS算法逆向

在进行渗透测试过程中,在一些功能点进行参数注入或者枚举爆破等过程中,会出现参数进行加密的情况,但是我们输入参数并不是加密状态,即便测试点存在漏洞也不可能测试成功,这时候便需要将所提交参数进行加密后在进行注入,针对JS应用我们可以采用JS断点调试的方法将加密算法逆向出来,再使用插件将加密后的参数进行注入

  • 代码全局搜索
    即将参数提交的网址、目录等关键字在开发者工具中进行搜索,再对JS源码进行分析,找出加密算法
  • 文件流程断点
    即查看登录数据包中所调用执行堆栈,文件执行流程为从下往上执行,选用其中可能存在加密过程的文件处进行断点调试
    在这里插入图片描述
    添加断点后再继续提交参数,观察作用域处的参数加密状况进行判断参数是否已经加密,如果未加密则查看堆栈上方文件中作用域的情况,直到作用域中的参数加密之后,分析代码中是否存在加密函数,找到加密函数后追踪加密文件即可成功获取加密算法。
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 代码标签断点
    右键审查功能点,在html代码中将标签进行子树修改和属性修改,再次运行功能点即可断点。其他步骤参考文件流程断点。
    在这里插入图片描述
  • XHR提交断点
    选择数据包中关键url路径
    在这里插入图片描述
    在源码的顶层文件夹中添加XHR断点关键url,再次运行功能点即可断点,其他步骤参考文件流程断点。
    在这里插入图片描述

加密算法载入

将加密算法以及加密逻辑找出之后,将加密算法文件另存为。使用brupsuite插件JSEncrypt即可将参数运用在枚举过程中。
载入过程:

  • 下载phantomjs并设置环境变量
    phantomjs下载地址
  • brupsuite加载jsEncrypter插件
    jsEncrypter下载地址
    在这里插入图片描述
    brupsuite出现此栏目即插件加载成功
    在这里插入图片描述
    将加密算法文件拷贝至插件所在jar包同级目录
    在这里插入图片描述
    修改phantomjs_server.js文件中的内容,将加密算法文件名称添加,以及编写算法运行逻辑
    在这里插入图片描述
    在该目录下使用已经设置了环境变量的phantomjs.exe文件运行phantomjs_server.js文件
    在这里插入图片描述
    查看brupsuite中插件连接是否成功,并进行测试
    加粗样式
    将加密算法加载至枚举爆破过程中,使得枚举的参数在加密后再进行爆破。
    在这里插入图片描述
    username字段成功加载算法进行枚举
    在这里插入图片描述

JS反调试绕过

JS反调试,即禁用开发者工具,防止用户查看JS源码,保护敏感数据,防止分析代码。

  • 常见反调试方法
    键盘监听(F12)
    检测浏览器的高度插值
    检测开发者人员工具变量是否为true
    利用console.log调用次数
    利用代码运行的时间差
    利用toString
    检测非浏览器
  • 绕过方法
    • 禁用断点法
      该方法指将开发者工具上的禁用断点开关打开,禁用一切断点,这样自己也就不能断点调试了,不过可以看到源代码
      在这里插入图片描述
    • 条件断点法
      即将代码中产生断点的语句添加前置条件。
      在这里插入图片描述
    • 此处暂停法
      在这里插入图片描述
    • 置空函数法
      即将产生debug的函数跟踪找到,在控制台处重新定义,使得函数不起作用。
      在这里插入图片描述
    • 本地覆盖法
      这种方法与在文件上传前端检测绕过类似,即将网页所加载关键文件保存在本地,启用本地覆盖,这样浏览器在加载网页时会根据本地覆盖文件进行加载,将反调试函数所在文件以及相关引用文件找出,使用本地覆盖的方法将反调试函数及相关作用代码进行注释修改,即可绕过反调试功能
      在使用这种方法时要将断点功能禁用,否则浏览器加载网页文件将显示不全
      在这里插入图片描述

JS代码混淆

JS文件在网页中可以被查看到,为了防止源码被调试,或者关键信息泄露,会对JS代码文件进行加密混淆。
常见的JS加密种类有:JJEncode AAEncode JSFuck,Sojson v4,Sojson v5,JSjiami v6 等
破解工具链接JSDec

ak/sk敏感信息泄露

在JS源码中,会泄露url、API信息,从而增加攻击面,如果部署了云服务,接口等服务,可能存在access key等关键信息,通过Pentestkit FindSomething Wappalyzer等浏览器插件可以收集JS代码中的信息,如password,key等,之后可以利用云利用工具上线云服务等

以上内容仅作学习,如有错误或瑕疵,欢迎批评指正,感谢阅读。

与Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过相似的内容:

Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过

# Web攻防--JS算法逆向--断点调试--反调试&&代码混淆绕过 ## JS算法逆向 在进行渗透测试过程中,在一些功能点进行参数注入或者枚举爆破等过程中,会出现参数进行加密的情况,但是我们输入参数并不是加密状态,即便测试点存在漏洞也不可能测试成功,这时候便需要将所提交参数进行加密后在进行注入,针

Web攻防--xxe实体注入

# web攻防--xxe实体注入 ## 漏洞简介 XML 外部实体注入(也称为 XXE)是一种 Web 安全漏洞,允许攻击者干扰应用程序对 XML 数据的处理。它通常允许攻击者查看应用程序服务器文件系统上的文件,并与应用程序本身可以访问的任何后端或外部系统进行交互。 在某些情况下,攻击者可以利用 X

web攻防--PHP反序列化

# web攻防--PHP反序列化 ## 漏洞简介 序列化:把对象转换为字节序列的过程,即把对象转换为可以存储或传输的数据的过程。例如将内存中的对象转换为二进制数据流或文件,在网络传输过程中,可以是字节或是XML等格式。 反序列化:把字节序列恢复为对象的过程,即把可以存储或传输的数据转换为对象的过程。

Web攻防--Java_SQL注入--XXE注入-- SSTI模板注入--SPEL表达式注入

预编译 编译器在编译sql语句时,会依次进行词法分析、语法分析、语义分析等操作, 预编译技术会让数据库跳过编译阶段,也就无法就进行词法分析,关键字不会被拆开,注入语句也就不会被识别为SQL的关键字,从而防止恶意注入语句改变原有SQL语句本身逻辑。 Java_JDBC注入 在使用JDBC进行数据库操作

Web攻防--JNDI注入--Log4j漏洞--Fastjson反序列化漏洞

JNDI注入 什么是JNDI JNDI全称为 Java Naming and Directory Interface(Java命名和目录接口),是一组应用程序接口,为开发人员查找和访问各种资源提供了统一的通用接口,可以用来定义用户、网络、机器、对象和服务等各种资源。 JNDI支持的服务主要有:DNS

[攻防世界][Web]PHP2

打开靶机对应的url 就一行字 Can you anthenticate to this website? 第一感觉就需要做目录文件扫描 使用御剑和dirsearch进行扫描,发现一个文件 index.phps 知识点: phps 是php标准中用来表示可以查看的php源文件的约定,不会被服务器执行

[攻防世界][Web]ics-06

打开靶机对应的url,展开是一个网站的样子,其实啥也么有 所有tab都点一遍,发现只有报表中心有内容,url为 http://61.147.171.105:49797/index.php?id=1 猜测这里是题眼,使用burpsuite的intruder直接爆id的值(0-10000) 最后发现id

[转帖]Web技术(三):TLS 1.2/1.3 加密原理(AES-GCM + ECDHE-ECDSA/RSA)

文章目录 前言一、TLS 加密原理1.1 TLS 信息加密1.2 TLS 完整性校验与认证加密1.3 TLS 报文结构1.4 TLS 密钥交换1.5 TLS 数字签名1.6 TLS 密码套件1.7 TLS 网络攻防 更多文章: 前言 前篇博客:图解HTTP中谈到,HTTP/1.1 协议默认是以明文方

详解Web应用安全系列(6)安全配置错误

Web攻击中的安全配置错误漏洞是一个重要的安全问题,它涉及到对应用程序、框架、应用程序服务器、Web服务器、数据库服务器等组件的安全配置不当。这类漏洞往往由于配置过程中的疏忽或错误,使得攻击者能够未经授权地访问系统数据或执行系统功能。 安全配置错误类漏洞是指在对Web应用及相关组件进行安全配置时,由

详解Web应用安全系列(8)不足的日志记录和监控

在Web安全领域,不足的日志记录和监控是一个重要的安全隐患,它可能导致攻击者能够更隐蔽地进行攻击,同时增加了攻击被检测和响应的难度。以下是对Web攻击中不足的日志记录和监控漏洞的详细介绍。 一、日志记录不足的问题 日志缺失或不完整 关键操作未记录:如用户登录、敏感数据访问、系统管理员操作等关键操作未