记一次 bypass 前端验证 + 后端缺陷
字数 990 2025-08-09 22:16:00
Bypass前端验证与后端缺陷利用实战分析
0x00 漏洞背景
本文记录了一次通过绕过前端验证和利用后端缺陷成功渗透系统的实战过程。攻击者通过分析JavaScript代码,结合后端接口缺陷,最终实现了未授权访问和权限提升。
0x01 漏洞发现过程
1. 初始信息收集
- 攻击者获得了目标系统的IP和域名列表
- 初始尝试挖掘越权漏洞未果
- 使用jsFinder工具扫描发现敏感接口:
getAllUsersdeleteuser等
2. 接口测试
- 尝试访问接口时出现报错,可能存在未授权访问漏洞
- 分析JS后确定需要构造两个参数
- 成功构造参数后获取到所有用户信息(密码为MD5加密)
0x02 前端验证绕过技术
1. 关键JavaScript代码分析
发现前端权限验证的关键逻辑:
while (1)
switch (e.prev = e.next) {
case 0:
if (T.a.start(),
document.title = j(t.meta.title),
i = Object(P["a"])(), !i) {
e.next = 9;
sessionStorage.setItem("user", JSON.stringify({ "userRole": "admin" }))
break
}
// 其他case省略...
}
2. 调试与绕过方法
- 使用F12开发者工具进行断点调试
- 发现程序流程会走到case 0
- 注意到case 9包含后台页面访问逻辑
- 通过调试器修改变量值,强制跳转到case 9
3. 权限提升关键步骤
- 执行以下代码修改sessionStorage:
sessionStorage.setItem("user",JSON.stringify({"userRole":"admin"}))
- 将path路径改为
bg_userManage以访问后台管理页面
0x03 后端缺陷利用
- 成功进入后台后,发现添加账号功能使用RSA加密参数
- 尝试直接修改其他用户密码:
- 绕过前端验证后,后端未进行充分权限校验
- 成功修改任意用户密码
0x04 工具推荐
- reres浏览器插件:
- 可将网站JS下载到本地进行修改
- 实现持久化JS修改,避免每次都需要调试
- 可直接修改case 0处的逻辑
0x05 防御建议
前端防护
- 避免在前端存储或处理敏感权限逻辑
- 对关键操作添加CSRF防护
- 使用代码混淆增加分析难度
后端防护
- 对所有接口实施严格的权限校验
- 敏感操作应使用一次性令牌
- 记录并监控异常权限请求
0x06 经验总结
- 渗透测试中JS代码审计常被忽视但非常重要
- 接口扫描可能发现隐藏的攻击面
- 前后端分离架构中,不能依赖前端进行安全控制
- 调试工具可以成为强大的攻击武器
附录:关键攻击步骤复现
- 使用jsFinder扫描发现敏感接口
- 分析接口参数构造方式
- 定位前端权限验证代码
- 通过调试修改sessionStorage提升权限
- 访问后台管理功能
- 利用后端缺陷执行敏感操作
此案例展示了前后端安全缺陷的组合利用,强调了"纵深防御"的重要性,任何单一层面的防护都可能被绕过。