记一次文件上传的曲折经历
字数 1164 2025-08-10 08:28:57

文件上传漏洞利用实战教学文档

1. 信息收集阶段

  1. 目标系统识别

    • 确认目标系统使用Shiro组件进行身份验证
    • 获取低权限账号凭证(xxx/xxx)
    • 验证Shiro反序列化漏洞不存在
  2. 权限评估

    • 低权限账号功能受限,需寻找其他攻击面
    • 收集高权限管理员账号信息(通过通讯录功能)

2. 文件上传漏洞发现与利用

2.1 初始文件上传点

  1. 漏洞位置

    • 头像上传功能存在任意文件上传
    • 可上传JSP文件但不被解析
  2. 限制分析

    • 请求数据包中无控制路径的参数
    • 无法直接通过上传获取WebShell

2.2 跨目录文件上传

  1. 发现新上传点

    • 使用收集的高权限账号发现其他上传功能
    • 上传请求返回两个路径参数:
      • id参数:绝对路径
      • url参数:Web可访问路径
  2. 路径映射分析

    • /home/weblogic/userfiles/映射为/luxxx/userfiles/
    • 超出映射目录的文件无法通过Web访问
  3. WAF绕过技术

    • 路径遍历限制:../超过3组被拦截
    • 绕过方法:使用../..//../替代

2.3 获取Web绝对路径

  1. 任意文件读取漏洞

    • 需要系统管理员权限
    • 通过创建具有系统管理员权限的用户访问文件管理功能
    • 下载功能存在任意文件下载漏洞
  2. 关键文件下载

    • 下载.bash_history文件
    • 从历史命令中寻找线索
  3. Tomcat配置发现

    • 通过.bash_history找到Tomcat配置文件
    • 从中获取Web应用的绝对路径

3. 其他文件操作漏洞

3.1 任意文件删除

  • 存在但利用价值有限(不适合红队操作)

3.2 文件移动功能

  • 尝试上传cron文件反弹shell
  • 但权限不足无法利用

4. 最终WebShell上传

  1. 确定Web目录

    • 通过Tomcat配置文件确认绝对路径
  2. 上传WebShell

    • 使用已知的绝对路径上传JSP WebShell
    • 成功获取系统权限

5. 关键技巧总结

  1. 多账号利用

    • 从低权限账号收集高权限账号信息
    • 创建具有更高权限的用户
  2. 路径遍历技巧

    • ../..//../绕过WAF对../../../的限制
  3. 历史文件分析

    • .bash_history是重要的信息源
    • 可暴露配置文件路径和系统操作历史
  4. 文件上传利用链

    低权限账号 → 收集高权限账号 → 发现上传点 → 路径遍历限制 → 
    获取绝对路径 → 上传WebShell → 获取权限
    

6. 防御建议

  1. 文件上传防护

    • 限制上传文件类型(白名单)
    • 重命名上传文件
    • 禁止路径遍历字符
  2. 权限控制

    • 严格区分不同权限账号的功能
    • 避免普通账号获取高权限账号信息
  3. 日志清理

    • 定期清理.bash_history等敏感日志文件
    • 避免暴露系统配置信息
  4. WAF规则优化

    • 检测非常规路径遍历方式(如..//..)
    • 对文件下载功能进行严格限制
  5. 系统加固

    • 限制Tomcat等中间件的配置文件访问
    • 使用专用用户运行服务,限制其权限
文件上传漏洞利用实战教学文档 1. 信息收集阶段 目标系统识别 : 确认目标系统使用Shiro组件进行身份验证 获取低权限账号凭证(xxx/xxx) 验证Shiro反序列化漏洞不存在 权限评估 : 低权限账号功能受限,需寻找其他攻击面 收集高权限管理员账号信息(通过通讯录功能) 2. 文件上传漏洞发现与利用 2.1 初始文件上传点 漏洞位置 : 头像上传功能存在任意文件上传 可上传JSP文件但不被解析 限制分析 : 请求数据包中无控制路径的参数 无法直接通过上传获取WebShell 2.2 跨目录文件上传 发现新上传点 : 使用收集的高权限账号发现其他上传功能 上传请求返回两个路径参数: id 参数:绝对路径 url 参数:Web可访问路径 路径映射分析 : /home/weblogic/userfiles/ 映射为 /luxxx/userfiles/ 超出映射目录的文件无法通过Web访问 WAF绕过技术 : 路径遍历限制: ../ 超过3组被拦截 绕过方法:使用 ../..//../ 替代 2.3 获取Web绝对路径 任意文件读取漏洞 : 需要系统管理员权限 通过创建具有系统管理员权限的用户访问文件管理功能 下载功能存在任意文件下载漏洞 关键文件下载 : 下载 .bash_history 文件 从历史命令中寻找线索 Tomcat配置发现 : 通过 .bash_history 找到Tomcat配置文件 从中获取Web应用的绝对路径 3. 其他文件操作漏洞 3.1 任意文件删除 存在但利用价值有限(不适合红队操作) 3.2 文件移动功能 尝试上传cron文件反弹shell 但权限不足无法利用 4. 最终WebShell上传 确定Web目录 : 通过Tomcat配置文件确认绝对路径 上传WebShell : 使用已知的绝对路径上传JSP WebShell 成功获取系统权限 5. 关键技巧总结 多账号利用 : 从低权限账号收集高权限账号信息 创建具有更高权限的用户 路径遍历技巧 : ../..//../ 绕过WAF对 ../../../ 的限制 历史文件分析 : .bash_history 是重要的信息源 可暴露配置文件路径和系统操作历史 文件上传利用链 : 6. 防御建议 文件上传防护 : 限制上传文件类型(白名单) 重命名上传文件 禁止路径遍历字符 权限控制 : 严格区分不同权限账号的功能 避免普通账号获取高权限账号信息 日志清理 : 定期清理 .bash_history 等敏感日志文件 避免暴露系统配置信息 WAF规则优化 : 检测非常规路径遍历方式(如 ..//.. ) 对文件下载功能进行严格限制 系统加固 : 限制Tomcat等中间件的配置文件访问 使用专用用户运行服务,限制其权限