[艰难的某次众测]代码审计到前台rce+几个高危
字数 1547 2025-08-10 08:28:07

代码审计实战:从前台RCE到高危漏洞挖掘

1. 漏洞挖掘整体思路

本次众测展示了从信息收集到最终获取系统权限的完整过程,主要包含以下几个关键阶段:

  1. 目标识别与框架分析
  2. 弱口令利用与后台渗透
  3. SQL注入与路径猜测
  4. 文件上传漏洞利用
  5. 代码审计与同框架分析
  6. 前台RCE漏洞挖掘

2. 详细技术要点解析

2.1 信息收集与框架识别

关键点:

  • 发现目标使用不常见框架时,立即全网搜索同框架的其他实例
  • 通过版本差异分析(6.0 vs 7.0)寻找可利用点
  • 查找安装教程获取路径信息

技巧:

  • 使用搜索引擎查找同框架的其他实例
  • 对比不同版本的功能差异和安全措施
  • 仔细阅读安装文档寻找路径泄露等敏感信息

2.2 弱口令利用技术

发现过程:

  1. 初始测试发现admin/123456弱口令(6.0版本)
  2. 目标系统(7.0)使用加密密码
  3. 通过"忘记密码"功能获取加密字符串
  4. 后台找到可回显明文密码的位置

密码重置技巧:

  • 利用数据库备份/还原功能替换密码字段
  • 当直接上传失败时(90%中断),考虑:
    • 修改请求方式(POST/GET)
    • 尝试分块上传
    • 修改文件头信息
    • 尝试不同文件格式

2.3 SQL注入到Getshell

关键步骤:

  1. 发现SQL注入点
  2. 通过注入获取路径信息(常规方法失败)
  3. 通过其他端口发现目录遍历漏洞
  4. 从日志文件中获取路径信息
  5. 结合安装教程确认绝对路径
  6. 最终成功写入webshell

路径猜测技巧:

  • 检查非常规端口服务
  • 分析日志文件(access.log, error.log等)
  • 查找安装配置文件
  • 尝试常见路径组合

2.4 高危漏洞挖掘

高危1:任意用户登录

利用方法:

  1. 通过数据库操作修改用户凭证
  2. 当webshell无法直接连接数据库时:
    • 在目标服务器上执行数据库操作
    • 添加或修改目标用户记录
  3. 通过代码逻辑分析解密算法

高危2:弱口令发现

发现过程:

  • 后台存在特殊格式账号(如zzzzzz)
  • 测试发现通用密码(123456)
  • 批量验证此类账号

严重漏洞:前台RCE

利用过程:

  1. 初始在6.0版本发现前台文件上传
  2. 目标7.0版本过滤机制增强
  3. 全网寻找7.0版本进行测试
  4. 发现uploadfile参数控制后缀
  5. 修改为ashx后缀绕过过滤

文件上传绕过技巧:

  • 分析上传参数命名规律
  • 尝试非常见可执行后缀(ashx, asmx等)
  • 修改Content-Type头
  • 尝试双重后缀(xxx.jpg.php)

3. 代码审计重点

3.1 文件上传漏洞审计要点

  1. 检查所有文件上传功能点
  2. 分析文件类型检测逻辑:
    • 后缀名检查
    • 内容检测
    • MIME类型验证
  3. 检查存储路径是否可预测
  4. 验证文件名处理逻辑

3.2 加密算法分析

  1. 定位密码加密/解密函数
  2. 分析"忘记密码"功能流程
  3. 跟踪加密字符串生成过程
  4. 寻找可逆加密或弱加密实现

4. 防御建议

4.1 针对文件上传漏洞

  1. 实施严格的白名单文件类型检查
  2. 对上传文件重命名(不可预测)
  3. 存储上传文件在非web目录
  4. 禁用上传文件的执行权限

4.2 针对认证漏洞

  1. 实施强密码策略
  2. 禁用默认账号或修改默认密码
  3. 密码加密使用强哈希算法(如bcrypt)
  4. 限制密码重置功能的安全性

4.3 通用防御措施

  1. 定期更新框架和组件
  2. 禁用不必要的服务和端口
  3. 实施严格的输入验证
  4. 错误信息中不泄露系统路径

5. 总结与经验

  1. 持久性:漏洞挖掘可能需要长时间坚持(本次花费2天)
  2. 多角度尝试:当一个方法失败时,立即转向其他可能性
  3. 版本差异分析:不同版本的安全措施可能不同
  4. 全面信息收集:安装文档、日志文件等都可能包含关键信息
  5. 代码审计价值:深入理解代码逻辑可以发现隐藏漏洞

通过系统性地应用这些技术和方法,安全研究人员可以有效地发现和利用Web应用中的安全漏洞,同时帮助开发人员提高应用程序的安全性。

代码审计实战:从前台RCE到高危漏洞挖掘 1. 漏洞挖掘整体思路 本次众测展示了从信息收集到最终获取系统权限的完整过程,主要包含以下几个关键阶段: 目标识别与框架分析 弱口令利用与后台渗透 SQL注入与路径猜测 文件上传漏洞利用 代码审计与同框架分析 前台RCE漏洞挖掘 2. 详细技术要点解析 2.1 信息收集与框架识别 关键点: 发现目标使用不常见框架时,立即全网搜索同框架的其他实例 通过版本差异分析(6.0 vs 7.0)寻找可利用点 查找安装教程获取路径信息 技巧: 使用搜索引擎查找同框架的其他实例 对比不同版本的功能差异和安全措施 仔细阅读安装文档寻找路径泄露等敏感信息 2.2 弱口令利用技术 发现过程: 初始测试发现admin/123456弱口令(6.0版本) 目标系统(7.0)使用加密密码 通过"忘记密码"功能获取加密字符串 后台找到可回显明文密码的位置 密码重置技巧: 利用数据库备份/还原功能替换密码字段 当直接上传失败时(90%中断),考虑: 修改请求方式(POST/GET) 尝试分块上传 修改文件头信息 尝试不同文件格式 2.3 SQL注入到Getshell 关键步骤: 发现SQL注入点 通过注入获取路径信息(常规方法失败) 通过其他端口发现目录遍历漏洞 从日志文件中获取路径信息 结合安装教程确认绝对路径 最终成功写入webshell 路径猜测技巧: 检查非常规端口服务 分析日志文件(access.log, error.log等) 查找安装配置文件 尝试常见路径组合 2.4 高危漏洞挖掘 高危1:任意用户登录 利用方法: 通过数据库操作修改用户凭证 当webshell无法直接连接数据库时: 在目标服务器上执行数据库操作 添加或修改目标用户记录 通过代码逻辑分析解密算法 高危2:弱口令发现 发现过程: 后台存在特殊格式账号(如zzzzzz) 测试发现通用密码(123456) 批量验证此类账号 严重漏洞:前台RCE 利用过程: 初始在6.0版本发现前台文件上传 目标7.0版本过滤机制增强 全网寻找7.0版本进行测试 发现uploadfile参数控制后缀 修改为ashx后缀绕过过滤 文件上传绕过技巧: 分析上传参数命名规律 尝试非常见可执行后缀(ashx, asmx等) 修改Content-Type头 尝试双重后缀(xxx.jpg.php) 3. 代码审计重点 3.1 文件上传漏洞审计要点 检查所有文件上传功能点 分析文件类型检测逻辑: 后缀名检查 内容检测 MIME类型验证 检查存储路径是否可预测 验证文件名处理逻辑 3.2 加密算法分析 定位密码加密/解密函数 分析"忘记密码"功能流程 跟踪加密字符串生成过程 寻找可逆加密或弱加密实现 4. 防御建议 4.1 针对文件上传漏洞 实施严格的白名单文件类型检查 对上传文件重命名(不可预测) 存储上传文件在非web目录 禁用上传文件的执行权限 4.2 针对认证漏洞 实施强密码策略 禁用默认账号或修改默认密码 密码加密使用强哈希算法(如bcrypt) 限制密码重置功能的安全性 4.3 通用防御措施 定期更新框架和组件 禁用不必要的服务和端口 实施严格的输入验证 错误信息中不泄露系统路径 5. 总结与经验 持久性 :漏洞挖掘可能需要长时间坚持(本次花费2天) 多角度尝试 :当一个方法失败时,立即转向其他可能性 版本差异分析 :不同版本的安全措施可能不同 全面信息收集 :安装文档、日志文件等都可能包含关键信息 代码审计价值 :深入理解代码逻辑可以发现隐藏漏洞 通过系统性地应用这些技术和方法,安全研究人员可以有效地发现和利用Web应用中的安全漏洞,同时帮助开发人员提高应用程序的安全性。