记一次从登录框到前台rce
字数 1443 2025-08-18 17:33:38
从登录框到前台RCE漏洞挖掘实战教学
1. 漏洞挖掘流程概述
本次实战演示了从简单的登录框开始,通过弱口令爆破、未授权访问发现、文件上传漏洞利用,最终实现前台RCE(远程代码执行)的完整过程。主要分为以下几个阶段:
- 接口未授权挖掘
- 登录框突破
- 后台漏洞挖掘
- 文件上传漏洞利用
- 权限提升与RCE实现
2. 接口未授权挖掘技术
2.1 信息收集方法
在未登录状态下,可通过以下方式收集接口信息:
- 分析JS文件:查找API端点、接口路径
- 路径扫描:使用Burp Suite等工具进行目录/文件爆破
- 批量请求探测:对收集的路径尝试GET/POST请求
2.2 未授权访问判断标准
通过观察响应包特征判断是否存在未授权访问:
- 状态码差异(如200 vs 403)
- 响应包内容差异(有无错误信息)
- 响应包大小差异
- 删除凭证后仍能访问
3. 登录框突破技术
3.1 账号枚举测试
测试步骤:
- 尝试常见账号:admin、admin123等
- 观察不同账号的响应差异:
- 存在账号的提示(如"密码错误")
- 不存在账号的提示(如"用户不存在")
- 注意密码错误锁定机制
3.2 弱口令爆破技巧
爆破策略:
- 使用常见弱密码(如123456)固定
- 配合账号字典进行爆破
- 根据响应包大小/内容判断成功与否
- 尝试手机号等可能作为账号的格式
4. 后台漏洞挖掘
4.1 后台功能测试要点
进入后台后重点关注:
- 所有上传/下载功能点
- API接口权限检查
- 使用Burp插件Autorize记录和测试接口权限
4.2 文件上传漏洞发现
测试流程:
- 尝试上传正常文件(如txt)
- 观察文件处理流程(上传后是否被读取)
- 测试删除凭证后是否仍能上传
- 测试路径穿越(../)
- 测试文件名控制
5. 文件上传漏洞利用
5.1 环境分析
发现环境特征:
- SpringBoot框架(上传JSP不可行)
- SSH端口未开放
- 定时任务服务可能已停止
5.2 利用方法尝试
尝试过的利用方式:
- 上传SSH登录凭证(失败)
- 写定时任务反弹shell(失败)
- 测试命令:
* whoami > /tmp/data.txt - 检查定时任务日志发现服务异常
- 测试命令:
5.3 最终利用方案
突破方法:
- 通过下载接口读取历史命令(
/root/.bash_history) - 获取网站真实路径(发现webapps目录)
- 构造上传路径直接写入JSP webshell
- 使用哥斯拉等工具连接获取交互式shell
6. 技术要点总结
- 未授权访问挖掘:JS文件分析+路径爆破是关键
- 登录突破:账号枚举+弱口令组合爆破
- 权限维持:删除凭证测试接口真正权限
- 上传漏洞:不仅要测试文件类型,还要测试路径控制
- RCE实现:当常规方法失败时,通过信息泄露获取路径是关键
- 环境适应:根据实际环境(SpringBoot/Tomcat)调整利用方式
7. 防御建议
- 对所有接口实施严格的权限验证
- 登录功能应防止账号枚举和暴力破解
- 文件上传功能应限制:
- 文件类型
- 文件路径
- 文件名
- 避免将敏感信息(如历史命令)暴露给Web用户
- 定期检查服务器上的异常文件
8. 扩展思考
- 当遇到验证码时如何突破(如重放攻击测试验证码有效性)
- 其他可能的信息泄露点(如备份文件、版本控制文件)
- 不同框架下的文件上传利用方式差异
- 无回显情况下的RCE证明方法
通过本案例可以看出,渗透测试是一个逐步深入的过程,需要结合多种技术手段,从信息收集到漏洞利用,最终实现系统控制。每个环节都可能成为突破的关键点。