稻草人企业站1.1.5代码审计
字数 1315 2025-08-25 22:59:02

稻草人企业站1.1.5代码审计报告与漏洞分析

0x00 前言

本文档详细分析稻草人企业站1.1.5版本中存在的多个安全漏洞,包括安装过程信息泄露、安装过程getshell、后台任意文件上传getshell以及后台任意文件删除漏洞。这些漏洞均已被验证存在,且危害等级较高。

0x01 安装过程信息泄露和getshell

漏洞描述

在安装过程中存在敏感信息泄露问题,同时配置文件写入点未做严格过滤,导致攻击者可以写入恶意代码实现getshell。

漏洞验证过程

  1. 使用D盾进行文件监控,通过Burp Suite抓取安装过程中的数据包
  2. 安装完成后发现存在敏感信息泄露的txt文件
  3. 测试配置文件写入点是否可控

漏洞利用方法

在安装过程中,向配置文件中写入恶意PHP代码:

tablepre=dcr_qy_';?><?php phpinfo()?>

漏洞代码分析

关键代码位于安装脚本中:

include "../include/common.func.php";
include "../include/app.info.php";

虽然引入了配置文件进行过滤,但未对写入内容做任何限制,导致恶意代码可以被成功写入。

0x02 管理员后台任意文件上传导致getshell

漏洞描述

后台多个图片上传点仅对Content-Type做了简单判断,未对文件内容进行有效验证,导致可以上传PHP等恶意文件实现getshell。

漏洞验证过程

  1. 登录后台管理系统
  2. 寻找任意图片上传点
  3. 上传PHP文件并修改Content-Type为image/jpeg等合法类型
  4. 访问上传的文件验证是否执行

漏洞利用方法

  1. 构造一个包含恶意代码的PHP文件
  2. 修改请求头中的Content-Type为合法图片类型
  3. 上传文件后直接访问上传路径

漏洞代码分析

关键代码位于include/class/class.upload.php中:

// 仅通过allow_files数组进行白名单检测
$allow_files = array('jpg', 'jpeg', 'gif', 'png');

这种简单的检测机制可以通过修改Content-Type轻松绕过。

0x03 后台任意文件删除

漏洞描述

后台管理功能中存在文件删除操作,且路径参数可控,导致管理员权限下可以实现任意文件删除。

漏洞验证过程

  1. 创建一个测试文件(如test.php)
  2. 通过后台文件管理功能删除该文件
  3. 验证文件是否被成功删除

漏洞利用方法

构造如下请求:

?action=del_file&cpath=/path/to/target/file

漏洞代码分析

关键问题在于cpath变量可控且未做严格校验:

// cpath变量直接用于文件删除操作
if($_GET['action'] == 'del_file') {
    unlink($_GET['cpath']);
}

0x04 总结与修复建议

漏洞总结

  1. 安装过程信息泄露:安装后遗留敏感信息文件
  2. 安装过程getshell:配置文件写入点未过滤
  3. 后台任意文件上传:仅检查Content-Type导致绕过
  4. 后台任意文件删除:路径参数未做校验

修复建议

  1. 安装过程

    • 安装完成后自动删除临时文件和敏感信息
    • 对配置文件写入内容进行严格过滤
  2. 文件上传

    • 使用文件内容检测而非扩展名或Content-Type判断
    • 实现二次渲染验证图片真实性
    • 设置上传目录不可执行
  3. 文件删除

    • 限制可删除的文件路径范围
    • 对路径参数进行严格校验
  4. 通用建议

    • 实现严格的输入验证和过滤
    • 遵循最小权限原则
    • 对管理员操作进行日志记录

审计经验

  1. 黑盒测试与白盒测试结合能提高漏洞发现率
  2. 安装过程是常见的安全薄弱点
  3. 后台功能往往存在高权限操作风险
  4. 文件操作相关功能需要特别关注

本报告详细分析了稻草人企业站1.1.5版本中的多个高危漏洞,这些漏洞在同类CMS中具有典型性,开发者应引以为戒,加强安全开发意识。

稻草人企业站1.1.5代码审计报告与漏洞分析 0x00 前言 本文档详细分析稻草人企业站1.1.5版本中存在的多个安全漏洞,包括安装过程信息泄露、安装过程getshell、后台任意文件上传getshell以及后台任意文件删除漏洞。这些漏洞均已被验证存在,且危害等级较高。 0x01 安装过程信息泄露和getshell 漏洞描述 在安装过程中存在敏感信息泄露问题,同时配置文件写入点未做严格过滤,导致攻击者可以写入恶意代码实现getshell。 漏洞验证过程 使用D盾进行文件监控,通过Burp Suite抓取安装过程中的数据包 安装完成后发现存在敏感信息泄露的txt文件 测试配置文件写入点是否可控 漏洞利用方法 在安装过程中,向配置文件中写入恶意PHP代码: 漏洞代码分析 关键代码位于安装脚本中: 虽然引入了配置文件进行过滤,但未对写入内容做任何限制,导致恶意代码可以被成功写入。 0x02 管理员后台任意文件上传导致getshell 漏洞描述 后台多个图片上传点仅对Content-Type做了简单判断,未对文件内容进行有效验证,导致可以上传PHP等恶意文件实现getshell。 漏洞验证过程 登录后台管理系统 寻找任意图片上传点 上传PHP文件并修改Content-Type为image/jpeg等合法类型 访问上传的文件验证是否执行 漏洞利用方法 构造一个包含恶意代码的PHP文件 修改请求头中的Content-Type为合法图片类型 上传文件后直接访问上传路径 漏洞代码分析 关键代码位于 include/class/class.upload.php 中: 这种简单的检测机制可以通过修改Content-Type轻松绕过。 0x03 后台任意文件删除 漏洞描述 后台管理功能中存在文件删除操作,且路径参数可控,导致管理员权限下可以实现任意文件删除。 漏洞验证过程 创建一个测试文件(如test.php) 通过后台文件管理功能删除该文件 验证文件是否被成功删除 漏洞利用方法 构造如下请求: 漏洞代码分析 关键问题在于cpath变量可控且未做严格校验: 0x04 总结与修复建议 漏洞总结 安装过程信息泄露 :安装后遗留敏感信息文件 安装过程getshell :配置文件写入点未过滤 后台任意文件上传 :仅检查Content-Type导致绕过 后台任意文件删除 :路径参数未做校验 修复建议 安装过程 : 安装完成后自动删除临时文件和敏感信息 对配置文件写入内容进行严格过滤 文件上传 : 使用文件内容检测而非扩展名或Content-Type判断 实现二次渲染验证图片真实性 设置上传目录不可执行 文件删除 : 限制可删除的文件路径范围 对路径参数进行严格校验 通用建议 : 实现严格的输入验证和过滤 遵循最小权限原则 对管理员操作进行日志记录 审计经验 黑盒测试与白盒测试结合能提高漏洞发现率 安装过程是常见的安全薄弱点 后台功能往往存在高权限操作风险 文件操作相关功能需要特别关注 本报告详细分析了稻草人企业站1.1.5版本中的多个高危漏洞,这些漏洞在同类CMS中具有典型性,开发者应引以为戒,加强安全开发意识。