首页 > 其他分享 >前端加密对抗-1

前端加密对抗-1

时间:2025-01-11 20:11:51浏览次数:1  
标签:加密 请求 前端 加解密 JS 密钥 数据包 对抗

改包的防范

目前流行的防止改包方式主要是这么几个方面

  1. 请求参数和路径的加密
    如果原始请求是GET请求,或防止访问者获取请求路径,通常会将用户实际的请求路径和GET请求参数封装都封装为POST请求的请求体,通过加解密网关再还原为原始GET请求传入后端分布式服务上。 在APP中比较常见。
    表现的形式通常为: 抓包后发现访问任何功能都是同一路径,并且请求全为密文

  2. 请求体的加密
    这类在纯web中最常见, 通常仅仅加密接口请求的请求体内容,但有以下几类加密问题。

方法 含义
使用固定密钥 这种情况一般JS中会存储密钥, 属于最简单的一种。
使用动态密钥 JS中不存储,一般用户第一次请求后将密钥加密写入COOKIE或本地存储中, 这类加密追踪难度较大。
对称加密 加解密数据包内容同一套密钥。
非对称加密 加密一套解密一套。
算法 算法就不是特别固定了, 常见的诸如AES RSA等, 也经常遇到国密算法或一些冷门算法。
  1. 签名
    签名的应用也十分广泛,app,小程序和现在许多web中均存在,签名的构成主要是以下几点:
构成部分 含义
RequestId 了防止重放攻击, 客户端生成随机RequestId 服务端接收后保存至Redis中, 如果再次接收到此RequestID, 则视为非法请求
时间戳 添加时间戳的超时时间, 一旦超时, 原始数据包失效
签名本身 通过 requestId + 原始请求体或请求参数 + 时间戳 + 盐值合并生成哈希值 从而保证以上参数的有效性和唯一性

参考

JS逆向

我在项目上很多都是直接浏览器 debug 来进行测试的,导致效率极低(主要是传入工具到现场也是巨麻烦的一件事情,并且现场环境问题也可以导致工具不可用),在靶场练习中学习使用工具联动 bp 进行测试。

那么开始我们的加解密之旅。

经典的一个开局登录框,随便输入点什么看看数据包的请求。

可以很明显的发现请求数据被进行了加密,这时就无法就行修改数据来进行测试了,但是做为一个勇敢的安服,必须给他拿下。

先打一个 XHR 断点来查看加密是怎么产生的。

然后重新发送一个请求包,可以发现请求已经被断住了,然后往上翻一下就可以看见加密过程。一个 aes 加密,并且是写死在前端里的,这种情况基本上极少遇见到,我到现在就只遇到过一次是将密钥写死在前端,并且还是个小程序。可能开发也没想到怎么去调试小程序吧(遇到过开发只知道微信小程序开发程序能进行调试 )。

使用 bp 的 autoDecoder 来进行自动加解密。设置我们拿到的 key 和 iv ,然后保存配置,名称随意叫。 使用方法-1 使用方法-2

在 http 历史里找到请求包,发送到重放模块中重放一次,就会出现 autodecoder ,点击到 autodecoder 中,右键发送到重放模块或者爆破模块中使用。日志中也可以看到我们重放的包已经进行加密处理了。




标签:加密,请求,前端,加解密,JS,密钥,数据包,对抗
From: https://www.cnblogs.com/qianyuzz/p/18662675

相关文章

  • [笔记] 使用 Jenkins 和 Nginx 实现前端项目的持续集成与部署 (CICD) : 从 GitLab 拉
    在现代软件开发中,持续集成与持续部署(CI/CD)已经成为提高开发效率、保证代码质量的重要手段。对于前端项目来说,如何快速、稳定地将代码从开发环境推送到生产环境,是一个关键问题。本文将详细介绍如何使用Jenkins和Nginx实现前端项目的CI/CD流程,确保每次代码提交都能自动......
  • 如何加密 PL/SQL 程序?思维导图 代码示例(java 架构)
    加密PL/SQL程序通常指的是保护存储在数据库中的PL/SQL代码,防止未经授权的用户查看或修改。Oracle数据库提供了一些方法来实现这一点,比如使用WRAP工具或者通过DBMS_DDL.CREATE_WRAPPED包来进行源代码的加密。思维导图结构-加密PL/SQL程序-使用WRAP工具......
  • 一对一直播平台源码,SVG在前端的使用方法
    一对一直播平台源码,SVG在前端的使用方法1.在浏览器直接打开<?xmlversion="1.0"?><svgwidth="100%"height="100%"version="1.1"xmlns="http://www.w3.org/2000/svg"><title>雷猴</title><circlecx=......
  • 32岁前端干了8年,是继续做前端开发,还是转其它工作
    前端发展有瓶颈,变来变去都是那一套,只是换了框架换了环境。换了框架后又得去学习,虽然很快上手,但是那些刚毕业的也很快上手了,入门门槛越来越低,想转行或继续卷,该如何破圈?这是一位网友的自述,做了几年前端开发,不知该如何破圈,笔者身边有很多成功转行网络安全,接下来笔者给大家......
  • 前端如何监听版本更新?
    为什么前端要监听版本更新?前端检测版本更新是确保用户始终使用最新版本应用的重要措施。站在用户的角度1、可以及时获取应用的新功能和改进,提升用户体验。2、及时更新可以修复已知的安全漏洞,保护用户数据和隐私。3、确保所有用户使用相同版本的应用,避免因版本不一致导致的功......
  • 一沙框架 前端请求后端数据的实现方法
    一沙框架前端请求后端数据的实现方法1、前端页面functionmyclick(event){varrealName=document.getElementById('realName').value;if(event.key==="Enter"){console.log("kkkkkkkkkkkkk");ys.ajax({......
  • python 代码实现了一个高级的 Coppersmith 攻击,用于对特定类型的 RSA 加密系统进行攻
    importmathimportnumpyasnpfromtypingimportList,Tuple,Optionalimportloggingfrommathimportgcd#导入gcd函数try:fromsage.allimport(Matrix,QQ,PolynomialRing,vector,next_prime,randint,ZZ)exceptImport......
  • 前端报告 2024:全新数据,深度解析未来趋势
    温馨提示:此报告为国际版全球报告,其中所涉及的技术应用、工具偏好、开发者习惯等情况反映的是全球前端开发领域的综合态势。由于国内外技术发展环境、行业生态以及企业需求等存在差异,可能有些内容并不完全契合国内的实际情况,请大家理性阅读,批判性地吸收其中的观点与信息。......
  • 前端通过docx-preview和pdfjs插件实现docx、pdf文件在线预览
    docx文件格式在线预览插件:docx-preview安装:npmidocx-preview使用:创建一个容器标签引入并创建渲染函数import{renderAsync}from"docx-preview";renderDocx(){renderAsync(this.fileData,this.$refs.file,null,{className:"docx",//默认和......
  • HTTPS 加密机制
    HTTPS概述HTTPS(全称:HyperTextTransferProtocoloverSecureSocketLayer或HypertextTransferProtocolSecure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URIschem......