从前端代码审计挖掘未授权进入后台到文件上传拿下某色情网站
字数 1430 2025-08-26 22:11:34
从前端代码审计到未授权后台访问及文件上传Getshell实战教学
0x00 前言
本教学文档将详细分析一个色情网站渗透案例,从信息收集开始,通过前端代码审计发现未授权访问漏洞,利用文件上传功能获取服务器权限,最终完成提权。这是一个典型的前后端分离架构的安全审计案例。
0x01 信息收集阶段
-
基础信息收集:
- 获取目标IP地址
- 扫描开放端口(常用工具:nmap)
- 获取应用程序包
- 识别框架版本:ThinkPHP 6.0.12
- 发现后台登录地址
-
初步漏洞尝试:
- 尝试ThinkPHP 6.0.12反序列化漏洞(未成功)
- 验证码机制分析:验证码有效,无法爆破
0x02 前端代码审计与未授权访问
关键发现点
-
登录逻辑分析:
- 网站采用前后端分离架构
- 登录请求通过AJAX发送到
/admin/login/index.html - 后端返回JSON格式响应,包含
code字段
-
响应代码含义:
// 验证成功,进入后台 if(status.code == 1){ layer.msg(status.msg,{offset: '150px', icon: 6}, function(){ top.location = "/admin/index/index.html"; }); }; -
漏洞利用步骤:
- 拦截登录响应数据包
- 修改
code字段为1 - 浏览器会自动跳转到后台主页
/admin/index/index.html
-
绕过前端跳转限制:
- 后台页面包含强制跳转代码:
<script>window.location.href = "/admin/login"</script> - 解决方法:
- 使用Burp Suite拦截响应
- 删除跳转代码
- 保持Burp Suite拦截状态(否则会恢复跳转)
- 后台页面包含强制跳转代码:
0x03 文件上传Getshell
-
发现上传点:
- 后台"网站配置"功能中存在图片上传功能
-
上传测试:
- 首次尝试:上传一句话木马(成功但无法连接)
- 二次尝试:使用哥斯拉(Godzilla)Webshell(连接成功)
-
连接工具选择:
- 中国菜刀:连接失败
- 哥斯拉:成功连接
- 原因:可能后端对特定函数进行了限制
0x04 权限提升
-
初始限制:
- 服务器禁用命令执行函数
-
绕过方法:
- 使用哥斯拉的BypassDisableFunctions模块执行命令
- 建立反弹Shell:
- 使用MSF(Metasploit Framework)开启监听
- 通过哥斯拉的PMeterpreter模块上线
- 稳定性问题:连接易中断
- 改进方案:使用Cobalt Strike生成稳定木马
-
提权操作:
- 利用CVE-2021-4034漏洞(Polkit权限提升漏洞)
- 成功获取root权限
0x05 后渗透阶段
-
信息收集:
- 发现宝塔面板
- 数据库查询获取管理员凭证
- MD5解密得到弱密码
-
横向移动准备:
- 密码复用测试(撞库)
- 应用数据挖掘(分析APP程序包)
0x06 攻击路径总结
完整攻击链:
网站路径扫描 → 发现后台地址 → 数据包分析+前端代码审计 → 未授权后台访问 → 文件上传Getshell → CVE-2021-4034提权 → 获取主机完全控制权
0x07 防御建议
-
前端安全:
- 避免在前端实现关键权限验证逻辑
- 对敏感操作增加二次验证
-
后端安全:
- 实现严格的权限验证中间件
- 对API请求进行身份验证和授权检查
-
文件上传:
- 实施严格的文件类型检查
- 使用随机文件名并限制可执行目录
- 考虑使用云存储服务隔离上传文件
-
系统安全:
- 及时更新系统和修复已知漏洞
- 限制服务器命令执行能力
- 使用最小权限原则运行服务
-
密码安全:
- 强制使用强密码策略
- 密码存储使用加盐哈希(非纯MD5)
0x08 工具清单
- 信息收集:nmap
- 代理工具:Burp Suite
- Webshell管理:哥斯拉(Godzilla)、中国菜刀
- 远程控制:Metasploit Framework、Cobalt Strike
- 漏洞利用:CVE-2021-4034 exploit
通过本案例可以学习到前后端分离架构下的安全审计方法,以及如何通过组合漏洞实现完整的渗透测试路径。