【JS解密】JS解密案例分享

admin 2026-04-13 03:56:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文通过两个JS解密实战案例,分享从逃避JS到掌握解密逻辑的过程。案例一分析AES加密参数,通过断点调试获取key/iv;案例二解决无限debugger干扰,揭示签名生成逻辑。关键发现是JS加密本质为参数拼接与常见加密组合,建议掌握AES/MD5基础用法,并总结六步解密流程:找文件、搜关键字、定位函数、断点调试、分析参数、还原逻辑。 综合评分: 85 文章分类: WEB安全,渗透测试,代码审计,安全工具,实战经验


cover_image

【JS解密】JS解密案例分享

原创

隐雾安全 隐雾安全

隐雾安全

2026年4月10日 09:01 日本

在小说阅读器读本章

去阅读

📝 编者语

很多人在挖洞的时候,会下意识跳过JS,觉得“看不懂”“太复杂”。但其实很多关键逻辑,比如参数加密、签名生成、token 处理,都是藏在 JS 里的。

这篇文章,是学员在实际练习过程中,从“看不懂 JS”到“能自己还原加密逻辑”的一次记录。

1

阿sir 我是被逼的

说实话,我之前是有点“逃避”JS 的。

平时挖洞更多是:

  • 抓包
  • 改参数
  • 跑接口

但只要一看到:

  • 加密参数
  • sign 校验
  • 一堆混淆 JS

我基本就会直接跳过,心里默认: 👉 这个点太麻烦了,不如换一个。

直到工作产出越来越少,我发现绕不过去了。

一开始,连入口都找不到

👉 登录 / 请求参数是加密的

抓包能看到数据包,但参数是这样的:

一眼看过去,全是加密内容,完全没法直接改。

这时候其实就只有一条路:

去看 JS。

  • 后缀名
  • MIME
  • 文件头
  • 解析漏洞

我是怎么开始看JS的

一开始我也是乱翻,后来慢慢有点方法了:

我现在的习惯是先做三件事:

  1. 找JS文件(Sources里看)
  2. 搜关键字:
  3. encrypt
  4. sign
  5. md5
  6. aes
  7. 找“入口函数”

这一步其实很关键,因为:

你不需要看懂全部JS,只需要找到“关键那一小段”。

2

案例一:AES 加密,其实没那么可怕

在一个JS文件里,找到了一个类似 aesencrypt 的函数。

这时候其实已经有方向了:

这是AES加密

当时卡住的点

最大的疑问是:

  • key是什么?
  • iv是什么?
  • 参数是怎么进去的?

关键步骤:

直接在浏览器里打断点。

打断点之后,事情就简单多了

在加密函数那里打了断点,然后重新触发请求。

这时候可以直接看到:

  • 明文数据
  • key
  • iv

那一刻其实挺有感觉的:

原来不是不会,是之前没去“看运行过程”。

解密

虽为cbc但使用同key、iv仍可解密出原password内容,但由于iv不对应随机iv解密后仍有乱码

3

案例二:无限 debugger,其实也能绕

另一个更“恶心”一点。

打开JS之后,直接卡死,因为:

全是debugger

每一步都在断,根本没法调试。

我是懵的

我以为这个点没法搞了。

但后来发现,其实有办法:

  • 用插件绕 debugger
  • 或者直接去掉 debugger
  • 或者用 hook

(这里我用的是现成插件绕的)

绕过之后,逻辑就清晰了

绕过之后再看代码,其实逻辑不复杂:

  • 三元运算符判断e为真执行加密操作,假使用空字符串
  • 键值形式keyvaulekey2value2+固定048a9c4943398714b356a696503d2d36

  • 对应md5加密与数据包sign相同

最终生成一个 sign 参数。

这里我学到一个很关键的点

很多看起来复杂的 JS,本质就是:拼参数 + 加密。

你只要搞清楚:

  • 参数怎么拼
  • 用了什么加密
  • key 是什么

基本就能复现。

4

我现在怎么看“JS 加密”这件事

经过这两次练习,我对JS的看法变化挺大的。

以前是:

看不懂 → 放弃

现在是:

看不懂 → 拆

我给自己总结了一套“JS 解密流程”

  1. 找 JS 文件
  2. 搜关键字(encrypt / sign / md5)
  3. 找入口函数
  4. 打断点
  5. 看参数(明文 / key / iv)
  6. 还原逻辑

一些前置知识(真的不用学太深)

我一开始也以为要学很多密码学,其实不用。

够用就行:

1. 常见加密方式

  • AES
  • MD5
  • Base64

2.AES 重点知道三件事

  • key
  • iv
  • 模式(CBC / ECB)

3. MD5 本质

  • 不可逆
  • 用来做签名校验

知道这些,就已经能搞定大部分场景了。

最后的一个感受

这两次练习让我改变最大的不是技术,而是一个习惯:

以前我会绕开“复杂的点”,现在我会停下来试着拆它。

很多时候不是 JS 太难,而是我们一开始就没打算看懂它。

但只要你真的去跟一遍流程,你会发现:

它没有你想象的那么复杂。

🎁 文末福利

联系客服获取《JS加解密实战案例》

!

微信号丨Hiddenfog001


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:隐雾安全 隐雾安全 隐雾安全《【JS解密】JS解密案例分享》

张雪峰,被AI复刻了 网络安全文章

张雪峰,被AI复刻了

文章总结: 文章报道了AI复刻人类数字分身的技术现象,以同事.skill和张雪峰.skill为例,展示通过个人数据训练AI分身的应用场景。关键发现包括技术引发赛
评论:0   参与:  0