记一次从登录框到前台rce
字数 1443 2025-08-18 17:33:38

从登录框到前台RCE漏洞挖掘实战教学

1. 漏洞挖掘流程概述

本次实战演示了从简单的登录框开始,通过弱口令爆破、未授权访问发现、文件上传漏洞利用,最终实现前台RCE(远程代码执行)的完整过程。主要分为以下几个阶段:

  1. 接口未授权挖掘
  2. 登录框突破
  3. 后台漏洞挖掘
  4. 文件上传漏洞利用
  5. 权限提升与RCE实现

2. 接口未授权挖掘技术

2.1 信息收集方法

在未登录状态下,可通过以下方式收集接口信息:

  • 分析JS文件:查找API端点、接口路径
  • 路径扫描:使用Burp Suite等工具进行目录/文件爆破
  • 批量请求探测:对收集的路径尝试GET/POST请求

2.2 未授权访问判断标准

通过观察响应包特征判断是否存在未授权访问:

  • 状态码差异(如200 vs 403)
  • 响应包内容差异(有无错误信息)
  • 响应包大小差异
  • 删除凭证后仍能访问

3. 登录框突破技术

3.1 账号枚举测试

测试步骤:

  1. 尝试常见账号:admin、admin123等
  2. 观察不同账号的响应差异:
    • 存在账号的提示(如"密码错误")
    • 不存在账号的提示(如"用户不存在")
  3. 注意密码错误锁定机制

3.2 弱口令爆破技巧

爆破策略:

  1. 使用常见弱密码(如123456)固定
  2. 配合账号字典进行爆破
  3. 根据响应包大小/内容判断成功与否
  4. 尝试手机号等可能作为账号的格式

4. 后台漏洞挖掘

4.1 后台功能测试要点

进入后台后重点关注:

  • 所有上传/下载功能点
  • API接口权限检查
  • 使用Burp插件Autorize记录和测试接口权限

4.2 文件上传漏洞发现

测试流程:

  1. 尝试上传正常文件(如txt)
  2. 观察文件处理流程(上传后是否被读取)
  3. 测试删除凭证后是否仍能上传
  4. 测试路径穿越(../)
  5. 测试文件名控制

5. 文件上传漏洞利用

5.1 环境分析

发现环境特征:

  • SpringBoot框架(上传JSP不可行)
  • SSH端口未开放
  • 定时任务服务可能已停止

5.2 利用方法尝试

尝试过的利用方式:

  1. 上传SSH登录凭证(失败)
  2. 写定时任务反弹shell(失败)
    • 测试命令:* whoami > /tmp/data.txt
    • 检查定时任务日志发现服务异常

5.3 最终利用方案

突破方法:

  1. 通过下载接口读取历史命令(/root/.bash_history
  2. 获取网站真实路径(发现webapps目录)
  3. 构造上传路径直接写入JSP webshell
  4. 使用哥斯拉等工具连接获取交互式shell

6. 技术要点总结

  1. 未授权访问挖掘:JS文件分析+路径爆破是关键
  2. 登录突破:账号枚举+弱口令组合爆破
  3. 权限维持:删除凭证测试接口真正权限
  4. 上传漏洞:不仅要测试文件类型,还要测试路径控制
  5. RCE实现:当常规方法失败时,通过信息泄露获取路径是关键
  6. 环境适应:根据实际环境(SpringBoot/Tomcat)调整利用方式

7. 防御建议

  1. 对所有接口实施严格的权限验证
  2. 登录功能应防止账号枚举和暴力破解
  3. 文件上传功能应限制:
    • 文件类型
    • 文件路径
    • 文件名
  4. 避免将敏感信息(如历史命令)暴露给Web用户
  5. 定期检查服务器上的异常文件

8. 扩展思考

  1. 当遇到验证码时如何突破(如重放攻击测试验证码有效性)
  2. 其他可能的信息泄露点(如备份文件、版本控制文件)
  3. 不同框架下的文件上传利用方式差异
  4. 无回显情况下的RCE证明方法

通过本案例可以看出,渗透测试是一个逐步深入的过程,需要结合多种技术手段,从信息收集到漏洞利用,最终实现系统控制。每个环节都可能成为突破的关键点。

从登录框到前台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证明方法 通过本案例可以看出,渗透测试是一个逐步深入的过程,需要结合多种技术手段,从信息收集到漏洞利用,最终实现系统控制。每个环节都可能成为突破的关键点。