实战案例浅析JS加密 - RSA与XXTEA

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 实战案例浅析JS加密 - RSA与XXTEA

这次要研究的网站采用的是rsa加密以及xxtea。

这里先复习下上一篇讲过的调试流程基础版:

  1. 如果网页有跳转,必须勾选 preservelog 防止丢包
  2. 看一下有没有框架 右键查看框架源代码(弹出式登陆界面)
  3. 登陆尽量使用错误密码 防止跳转
  4. 查看关键登陆包 分析哪些参数是加密的
  5. 使用别的浏览器分析哪些参数是固定的值
  6. 初步猜测加密方法
  7. 搜索
  • 直接搜索参数
  • pwd=
  • pwd =
  • pwd:
  • pwd :
  • 密码框地方右键 检查 查看 id name type
  1. 找到加密的地方(重点)
  2. 调试
  3. 找出所有的加密代码
  • 从最后一步开始写起,缺啥找啥
  • 如果找的是函数的话 search 要带上 function xxx
  • 如果看到加密的地方有个类,并且之后是用 prototype 把方法加在原生对象上的话,要把
    所有加在原生对象上的方法都找出来
  • 函数找多了没关系,只要不报错不会影响结果,但是不能找少了

以上就是上篇文章调试的核心流程,接下来我们继续用实战案例练习一下。

RSA

先看下要解析的加密参数,记住流程的前几点:

接下来搜索参数,分析可能存在加密代码的js文件:

尝试了上面流程里面列举的可能的参数名,并没有发现有用的信息,所以试了下直接搜索password关键字,找到一个可能和登陆相关的文件,搜索发现疑似的加密代码:

先测试打个断点试试:

成功进入断点接下来,就是缺啥找啥补齐就可以了,强烈建议大家下载一个webstorm,方便调试。

我们先把代码里面的值填写一下,运行看看报错是什么:

根据报错我们找找这里的RSAKey在哪里,不知道如何查找可以将鼠标悬停在对应位置即可根据提示找到对应的代码。

反复操作即可,缺啥找啥直至js文件无报错即可。

小结

咸鱼找了一些简单网站,查看了对应的RSA加密的方法,总结了以下套路:

  • 一般的rsa加密通常会先声明一个rsa对象
  • 本地使用公钥加密即public key
  • 通常有Encrypt关键字
  • 加密后字符长度为128位或256位
    结合以上套路可以帮助我们快速判断加密方式如何,便于我们理清解密思路。

XXTEA

“微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA)都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。

XXTEA是其最新的变种,于1998年提出。目前还没有人找到对其进行攻击的方法,是对前面一些变种的改进。XXTEA 算法很安全,而且非常快速,非常适合应用于 Web 开发中。

以上引用自https://my.oschina.net/mickelfeng/blog/109388

介绍完 XXTEA 我们先看看加密案例网站是什么样子的:

可以看到传输的参数都是加密后的密文,像这类加密我们可以参考提交表单中的id,class等,查看密码框的id后,全局搜索pass:

找到疑似代码的位置,不确定可以打上断点测试一下,通过断点发确认加密位置:

接下来就是缺啥补啥的过程,经过解密发现这个网站加密过程是一个xxtea.base64的加密。

对比上一篇文章的base64的加密其实区别不大,但是在解密过程中需要思路的转变。

以上就是咸鱼对js解密的案例练习,希望对你有所帮助。

相关文章
|
2月前
|
自然语言处理 JavaScript 前端开发
深入理解JavaScript中的闭包:原理与实战
【10月更文挑战第12天】深入理解JavaScript中的闭包:原理与实战
|
15天前
Next.js 实战 (二):搭建 Layouts 基础排版布局
本文介绍了作者在Next.js v15.x版本发布后,对一个旧项目的重构过程。文章详细说明了项目开发规范配置、UI组件库选择(最终选择了Ant-Design)、以及使用Ant Design的Layout组件实现中后台布局的方法。文末展示了布局的初步效果,并提供了GitHub仓库链接供读者参考学习。
Next.js 实战 (二):搭建 Layouts 基础排版布局
|
9天前
|
存储 网络架构
Next.js 实战 (四):i18n 国际化的最优方案实践
这篇文章介绍了Next.js国际化方案,作者对比了网上常见的方案并提出了自己的需求:不破坏应用程序的目录结构和路由。文章推荐使用next-intl库来实现国际化,并提供了详细的安装步骤和代码示例。作者实现了国际化切换时不改变路由,并把当前语言的key存储到浏览器cookie中,使得刷新浏览器后语言不会失效。最后,文章总结了这种国际化方案的优势,并提供Github仓库链接供读者参考。
|
10天前
Next.js 实战 (三):优雅的实现暗黑主题模式
这篇文章介绍了在Next.js中实现暗黑模式的具体步骤。首先,需要安装next-themes库。然后,在/components/ThemeProvider/index.tsx文件中新增ThemeProvider组件,并在/app/layout.tsx文件中注入该组件。如果想要加入过渡动画,可以修改代码实现主题切换时的动画效果。最后,需要在需要的位置引入ThemeModeButton组件,实现暗黑模式的切换。
|
16天前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。
|
25天前
|
设计模式 前端开发 JavaScript
JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式
本文深入探讨了JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式,结合电商网站案例,展示了设计模式如何提升代码的可维护性、扩展性和可读性,强调了其在前端开发中的重要性。
29 2
|
2月前
|
JavaScript 前端开发 开发者
探索JavaScript原型链:深入理解与实战应用
【10月更文挑战第21天】探索JavaScript原型链:深入理解与实战应用
33 1
|
2月前
|
SQL 前端开发 JavaScript
Nest.js 实战 (十五):前后端分离项目部署的最佳实践
这篇文章介绍了如何使用现代前端框架Vue3和后端Node.js框架Nest.js实现的前后端分离架构的应用,并将其部署到生产环境。文章涵盖了准备阶段,包括云服务器的设置、1Panel面板的安装、数据库的安装、域名的实名认证和备案、SSL证书的申请。在部署Node服务环节,包括了Node.js环境的创建、数据库的配置、用户名和密码的设置、网站信息的填写、静态网站的部署、反向代理的配置以及可能遇到的常见问题。最后,作者总结了部署经验,并希望对读者有所帮助。
203 11
|
2月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
1月前
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
45 0