Veno-File-Manager (VFM3-4)存在显示隐藏文件夹(hidden_dirs)漏洞
Veno-File-Manager (VFM3-4)存在显示隐藏文件夹(hidden_dirs)漏洞解决办法解决方法:
根目录/vfm-admin/class/class.location.php 文件,类中成员方法 editAllowed() 代码,其中的成员变量 $father 可能有误,没有把获取到的当前url地址($getDir)转码为中文字符,并且获取的路径始终是开始目录(starting_dir),并不是当前目录,也不是当前目录的子目录,相关代码如下:
/**
* Check if editing is allowed into the current directory,
* based on configuration settings
*
* @param string $relative relative path to index.php
*
* @return true/false
*/
public function editAllowed($relative = false)
{
global $setUp;
$totdirs = count($this->path);
$father = $this->getDir(false, true, false, $totdirs -1);
$hidden_dirs = $setUp->getConfig('hidden_dirs');
if (!$hidden_dirs) {
return false;
}
if (in_array(basename($father), $hidden_dirs)) {
return false;
}
if ($this->checkUserDir($relative) === true) {
return true;
}
return false;
}把其中的成员变量 $father 中的第4个参数 $totdirs -1改为 0,修改后代码如下:
$father = $this->getDir(false, true, false, 0);
修改后访问效果:
在当前目录下如果有隐藏文件夹,仍然能列表显示,但是打开隐藏文件夹时,不再显示此隐藏目录下的文件。
与解决此漏洞相关文件:
根目录/vfm-admin/class/class.location.php //检查当前用户目录权限(修改此文件)
页:
[1]