白盒测试与代码审计-js登录逆向实战

声明:本文所有内容仅用于授权渗透测试与网络安全学习研究,禁止用于任何非法用途。

前言

在 Web 安全测试中,登录接口往往是第一道关卡。很多网站为了防止密码明文传输,会在前端使用 JavaScript 对密码进行加密。本文将通过两个具体的靶场案例,演示如何从发现加密、调试代码到最终实现自动化爆破的全过程。


一、 寻找入口:发现加密特征

一切始于对目标的观察。我们需要确定目标是否存在加密,以及加密发生的位置。

(说明:展示靶场登录界面,输入用户名 admin 和密码)

首先,我们在登录页面输入测试账号(如 admin)和密码。为了看清数据传输的细节,我们需要打开浏览器的开发者工具。

(说明:展示按 F12 打开开发者工具)

按下 F12 键打开开发者工具,切换到 Network(网络) 面板。这里记录了浏览器与服务器之间所有的通信请求。当我们点击"提交"按钮后,观察发出的 POST 请求。

(说明:展示抓包结果,红框圈出 password 参数是一串乱码/密文)

在请求详情中,我们可以清楚地看到 password 字段的值并不是我们输入的明文(如 123456),而是一串毫无规律的字符(例如 96e792...)。这说明前端 JavaScript 代码在发送请求前拦截了表单数据,并对密码进行了加密处理。这就是我们要攻破的"入口"。


二、 定位源码:断点调试的艺术

找到加密参数后,下一步是定位生成该参数的核心代码。

(说明:展示在 Sources 面板找到 index_03.php,高亮显示 onclick 事件及 md5 函数调用)

我们在 Sources(源代码) 面板中找到对应的页面文件(如 index_03.php)。通过搜索关键词或阅读代码,我们定位到了点击事件监听器。可以看到代码中有一行 var md5_password = md5(password);,这暗示了加密算法可能是 MD5。为了验证这一点并查看中间变量,我们在这一行打上断点。

打好断点后,重新点击登录,程序会暂停运行。此时我们需要用到调试工具栏上的按钮。特别是 "下一步" (Step Over) 和 "步入" (Step Into),它们是追踪代码执行流程的关键。

程序在断点处暂停,此时我们可以看到变量 password 的值还是明文 111111。这说明加密操作尚未执行。

点击"下一步",当前行的代码执行完毕。如果我们想深入探究 md5() 函数内部是如何工作的,就需要点击"步入"按钮。

点击"步入"后,程序直接跳进了 md5.min.js 文件内部。这证实了我们的猜想:该网站确实使用了标准的 MD5 算法对密码进行哈希处理。既然算法已知,我们就可以在本地模拟这个过程。


三、 场景实战一:MD5 加密的爆破

确认了加密方式为 MD5 后,我们用yarkit进行爆破

选择MD5编码

配置完成后发送请求。工具会自动遍历字典,计算 MD5 并发包。观察响应包,当看到 login success 字样时,说明我们成功猜解出了密码。


四、 场景实战二:Base64 编码的识别与利用

接下来我们换一个靶场环境(login_04.php),看看遇到不同的加密该怎么办。

我们需要调整攻击策略。在工具的载荷处理规则中,将编码器从 MD5 切换为 Base64 编码。

再次发送请求。这一次,工具会对字典中的密码进行 Base64 编码后再发送。很快,响应包中再次出现了 login success,爆破成功!


五、 总结

通过以上两个案例,我们完整体验了 JS 逆向的标准流程:

  1. 抓包确认加密事实。

  2. 源码审计定位加密函数。

  3. 调试理解参数传递过程。

  4. 工具模拟实现自动化测试。

相关推荐
Penge6665 小时前
《Go 后端开发者学 TypeScript:数组和元组》
javascript
Penge6666 小时前
《Go 后端开发者学 TypeScript:export关键字大全》
javascript
Penge6666 小时前
《Go 后端开发者学 TypeScript:从零理解 async、await 与 Promise》
javascript
Penge6666 小时前
typescript 中const用法
javascript
Linux-lucky8 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
博客zhu虎康12 小时前
实现局域网P2P通信:内网发送消息
网络·网络协议·p2p
山东科恩光电12 小时前
安全触边在游乐园设施与公共交通车门防夹伤系统中的选型安装及维护要点
安全
吴声子夜歌13 小时前
Kubernetes权威指南——网络原理(一)
网络·容器·kubernetes
陈希12313 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络