JS逆向实战之混淆加密和AES加密的破解

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: JS逆向实战之混淆加密和AES加密的破解

640.jpg

圣诞节到了, 这不,我来送 "礼物" 了,X江酒店登录页面的参数加密破解。地址如下:

aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4v

浏览器输入上方解密后的地址,F12 打开浏览器开发者工具,随意输入一个账号和密码。这里密码输入我一般用的 123456,抓包之后如下图:

640.jpg

抓包

有两个加密的参数 black_boxpassword.

640.jpg

这里提供两种定位加密代码的方法:

1、search 栏搜索上述两个加密参数;

2、这是个 xhr 的请求,可以通过下 xhr 断点来定位

通过 “black_box” 搜索,结果只有一个 JS 文件。

640.jpg

点击左下角的大括号美化 JS,定位到加密位置。打上断点640.jpg


重发请求,请求会在断点处停下来. 这个 fmOpt.getinfo() 函数就是我们要找的 black_box,断点停下后,可以点进去640.jpg


看到这些奇奇怪怪的变量,而且所有变量名看起来都长的差不多。你心里肯定在想,这是什么鬼。别慌!这就是 JS 混淆后的代码。直接拉到最上面,可以看到有很多变量的定义

640.jpg

所以这部分代码,我们是需要扣出来的。如果你觉得混淆的代码看起来非常的难受,你可以选择写个脚本用正则或者 replace() 来做替换,比如你可以在 Conlose 输出查看它的庐山真面目

640.jpg

当然,在这里不替换也可以执行。无论你选择了何种方法,前提条件都需要找到完整代码,不能有遗漏,否则执行不了。

640.jpg

我们主要扣取的代码是 oO00oo 对象中的 OOQo0o 函数。

640.jpg

所以里面定义变量或对象都需要扣取。扣完之后,通过调试来判断还缺少哪些变量,这里通过浏览器来进行调试,点击 sources,选择 +New snippet,粘贴上我们刚扣取的代码

640.jpg

文件名称可以随意命名,之后右键选择运行

640.jpg

运行完之后在下方 conlose 进行调试!一般都要经过反复调试添加代码后,才能正常运行。这里直接出结果了。

640.jpg

black_box 参数完成了,接下来是 password !  重发请求,断点继续停在了 black_box 加密处!

640.jpg

可以看到,在对 black_box 加密之前,640.jpgpassword 就已经完成加密了。所以我们根据调用栈往前找


前面两步就能找到 password 的加密代码,看到这个 encryptAES 有没有很熟悉,没错就是 AES 加密!遇到这种加密你甚至都不用扣代码…

640.jpg

好了,一切都解开了!密钥 n,偏移量 a,我们直接用 crypto-js 来执行!

640.jpg

完美!和抓包的结果一致,可以睡觉了..下次再见~


相关文章
|
2月前
|
自然语言处理 JavaScript 前端开发
深入理解JavaScript中的闭包:原理与实战
【10月更文挑战第12天】深入理解JavaScript中的闭包:原理与实战
|
20天前
Next.js 实战 (二):搭建 Layouts 基础排版布局
本文介绍了作者在Next.js v15.x版本发布后,对一个旧项目的重构过程。文章详细说明了项目开发规范配置、UI组件库选择(最终选择了Ant-Design)、以及使用Ant Design的Layout组件实现中后台布局的方法。文末展示了布局的初步效果,并提供了GitHub仓库链接供读者参考学习。
Next.js 实战 (二):搭建 Layouts 基础排版布局
|
15天前
|
存储 网络架构
Next.js 实战 (四):i18n 国际化的最优方案实践
这篇文章介绍了Next.js国际化方案,作者对比了网上常见的方案并提出了自己的需求:不破坏应用程序的目录结构和路由。文章推荐使用next-intl库来实现国际化,并提供了详细的安装步骤和代码示例。作者实现了国际化切换时不改变路由,并把当前语言的key存储到浏览器cookie中,使得刷新浏览器后语言不会失效。最后,文章总结了这种国际化方案的优势,并提供Github仓库链接供读者参考。
|
16天前
Next.js 实战 (三):优雅的实现暗黑主题模式
这篇文章介绍了在Next.js中实现暗黑模式的具体步骤。首先,需要安装next-themes库。然后,在/components/ThemeProvider/index.tsx文件中新增ThemeProvider组件,并在/app/layout.tsx文件中注入该组件。如果想要加入过渡动画,可以修改代码实现主题切换时的动画效果。最后,需要在需要的位置引入ThemeModeButton组件,实现暗黑模式的切换。
|
22天前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。
|
1月前
|
设计模式 前端开发 JavaScript
JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式
本文深入探讨了JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式,结合电商网站案例,展示了设计模式如何提升代码的可维护性、扩展性和可读性,强调了其在前端开发中的重要性。
29 2
|
1月前
|
资源调度 前端开发 JavaScript
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第10天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤,包括安装依赖、创建混淆脚本、修改 `package.json` 脚本命令、构建项目并执行混淆,以及在 HTML 文件中引用混淆后的文件。通过这些步骤,可以有效提高代码的安全性。
|
2月前
|
JavaScript 前端开发 开发者
探索JavaScript原型链:深入理解与实战应用
【10月更文挑战第21天】探索JavaScript原型链:深入理解与实战应用
39 1
|
1月前
|
前端开发 JavaScript 安全
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第7天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤。包括项目准备、安装 `javascript-obfuscator`、配置 Vite 构建以应用混淆,以及最终构建项目进行混淆。通过这些步骤,可以有效提升前端代码的安全性,防止被他人轻易分析和盗用。
235 0
|
2月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战