白盒测试与代码审计-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. 工具模拟实现自动化测试。

相关推荐
无障碍研究院1 小时前
2026TADC|圆桌对话:软/硬件无障碍的过去、现在、未来
安全
乔旭伟1 小时前
Linux 服务器安全加固实战:SSH、防火墙、补丁与入侵排查
linux·服务器·安全
优选资源分享2 小时前
PicGo v3.0.3 新版 | 开源免费图床工具
javascript·笔记·electron
裕晟资质规划2 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全
ShineWinsu2 小时前
对于JavaScript:JavaScript基础语法的解析
开发语言·前端·javascript·面试·web·基础语法·循环
刘胡子大叔3 小时前
备份包只有 1.5K?
linux·服务器·网络
许彰午3 小时前
模拟实现堡垒机
安全·系统安全
普通人63 小时前
php+html+canvas实现树状打开的结构
开发语言·javascript·html5·1024程序员节
Highcharts.js3 小时前
Highcharts 发布16项最新安全公告
人工智能·安全·性能优化·highcharts·可视化图表