实战的科技与狠活
字数 1358 2025-08-11 22:57:12

文件上传漏洞实战:WAF绕过与权限提升技术详解

0x01 前言

本文记录了一次真实的攻防演练中遇到的系统渗透过程,重点分析了文件上传漏洞的WAF绕过技术和权限提升方法。通过本案例,我们可以学习到现代Web应用安全防护的绕过技巧以及权限维持的有效手段。

0x02 目标系统分析

目标系统存在以下安全漏洞组合:

  1. 弱口令漏洞(直接进入后台)
  2. 存在文件上传功能点
  3. 上传功能存在WAF防护但可绕过
  4. 系统权限配置不当(IIS权限)

0x03 文件上传WAF绕过技术

3.1 文件后缀名绕过

发现过程

  • 上传图片文件时发现WAF检测文件后缀名
  • 常规测试方法无效

绕过方法

  • filename参数值的最后位置添加一个双引号(")即可绕过检测

原理推测

  • WAF可能使用正则表达式匹配文件后缀,添加特殊字符可能导致解析异常
  • 服务器端可能未严格处理文件名中的特殊字符

3.2 文件内容检测绕过

3.2.1 WAF规则触发点分析

使用二分法测试发现三个触发WAF规则的内容特征:

  1. ASP代码标记

    • 任何<%后跟字母的代码都会被拦截(如<%try
  2. ASP.NET页面指令

    • <%@ Page Language="CS" %>会被拦截
    • 推测WAF检测常见ASP.NET指令
  3. 特定.NET代码

    • new System.IO.MemoryStream()
    • object等特定.NET类和方法调用

3.2.2 绕过技术实现

针对第1和第3点

  • 使用注释添加脏字符破坏特征匹配:
    /*asdasd--------asdas*/
    <%
    // 恶意代码
    %>
    

针对第2点

  • 替换页面指令为等效但较少检测的语法:
    <script language=csharp runat=server>
    // 替代<%@ Page Language="CS" %>
    

0x04 权限提升与持久化

4.1 初始权限确认

  • 执行whoami确认当前为IIS应用程序池权限(通常为低权限)

4.2 命令执行限制

  • 发现执行第一个命令后后续命令无响应
  • Shell保持连接但无法执行更多命令

4.3 使用SweetPotato提权

  • 利用哥斯拉(Behinder)内置的SweetPotato提权模块
  • 特点:可以提权但每次只能执行一个命令后会卡死

4.4 高效权限维持方案

  1. 上传远程管理工具

    • 上传Todesk等远程控制软件
  2. 单次有效执行

    • 使用SweetPotato执行安装命令
    • SweetPotato.exe -c "安装命令"
  3. 获取连接凭证

    • 通过文件管理功能查看Todesk配置文件
    • 获取连接密码或认证信息
  4. 建立持久通道

    • 成功连接后获得稳定控制权限

0x05 防御建议

5.1 针对文件上传漏洞

  1. 实施多层防御:
    • 前端校验+后端校验+文件内容扫描
  2. 严格文件名处理:
    • 过滤特殊字符
    • 重命名上传文件
  3. 内容检测增强:
    • 检测注释中的脏字符
    • 监控异常脚本语法变种

5.2 针对权限提升

  1. 最小权限原则:
    • IIS应用程序池使用最低必要权限
  2. 命令执行监控:
    • 检测异常进程创建(如远程工具安装)
  3. 定期审计:
    • 检查服务器上未授权的远程管理软件

0x06 总结

本案例展示了从弱口令到文件上传,再到权限提升的完整攻击链。关键点在于:

  1. WAF绕过需要耐心测试和多种技术组合
  2. 受限环境下需要寻找"一击必杀"的权限提升方法
  3. 权限维持要考虑工具的特性和执行限制

通过分析攻击手法,防御方可以更有针对性地加强系统防护,特别是对文件上传功能的保护和服务器权限的严格控制。

文件上传漏洞实战:WAF绕过与权限提升技术详解 0x01 前言 本文记录了一次真实的攻防演练中遇到的系统渗透过程,重点分析了文件上传漏洞的WAF绕过技术和权限提升方法。通过本案例,我们可以学习到现代Web应用安全防护的绕过技巧以及权限维持的有效手段。 0x02 目标系统分析 目标系统存在以下安全漏洞组合: 弱口令漏洞(直接进入后台) 存在文件上传功能点 上传功能存在WAF防护但可绕过 系统权限配置不当(IIS权限) 0x03 文件上传WAF绕过技术 3.1 文件后缀名绕过 发现过程 : 上传图片文件时发现WAF检测文件后缀名 常规测试方法无效 绕过方法 : 在 filename 参数值的最后位置添加一个双引号( " )即可绕过检测 原理推测 : WAF可能使用正则表达式匹配文件后缀,添加特殊字符可能导致解析异常 服务器端可能未严格处理文件名中的特殊字符 3.2 文件内容检测绕过 3.2.1 WAF规则触发点分析 使用二分法测试发现三个触发WAF规则的内容特征: ASP代码标记 : 任何 <% 后跟字母的代码都会被拦截(如 <%try ) ASP.NET页面指令 : <%@ Page Language="CS" %> 会被拦截 推测WAF检测常见ASP.NET指令 特定.NET代码 : new System.IO.MemoryStream() object 等特定.NET类和方法调用 3.2.2 绕过技术实现 针对第1和第3点 : 使用注释添加脏字符破坏特征匹配: 针对第2点 : 替换页面指令为等效但较少检测的语法: 0x04 权限提升与持久化 4.1 初始权限确认 执行 whoami 确认当前为IIS应用程序池权限(通常为低权限) 4.2 命令执行限制 发现执行第一个命令后后续命令无响应 Shell保持连接但无法执行更多命令 4.3 使用SweetPotato提权 利用哥斯拉(Behinder)内置的 SweetPotato 提权模块 特点:可以提权但每次只能执行一个命令后会卡死 4.4 高效权限维持方案 上传远程管理工具 : 上传Todesk等远程控制软件 单次有效执行 : 使用SweetPotato执行安装命令 SweetPotato.exe -c "安装命令" 获取连接凭证 : 通过文件管理功能查看Todesk配置文件 获取连接密码或认证信息 建立持久通道 : 成功连接后获得稳定控制权限 0x05 防御建议 5.1 针对文件上传漏洞 实施多层防御: 前端校验+后端校验+文件内容扫描 严格文件名处理: 过滤特殊字符 重命名上传文件 内容检测增强: 检测注释中的脏字符 监控异常脚本语法变种 5.2 针对权限提升 最小权限原则: IIS应用程序池使用最低必要权限 命令执行监控: 检测异常进程创建(如远程工具安装) 定期审计: 检查服务器上未授权的远程管理软件 0x06 总结 本案例展示了从弱口令到文件上传,再到权限提升的完整攻击链。关键点在于: WAF绕过需要耐心测试和多种技术组合 受限环境下需要寻找"一击必杀"的权限提升方法 权限维持要考虑工具的特性和执行限制 通过分析攻击手法,防御方可以更有针对性地加强系统防护,特别是对文件上传功能的保护和服务器权限的严格控制。