找回密码
 注册
首页 ≡≡网络技术≡≡ PHP语言 Veno-File-Manager (VFM3-4)存在显示隐藏文件夹(hidden_ ...

CMS Veno-File-Manager (VFM3-4)存在显示隐藏文件夹(hidden_dirs)漏洞

灰儿 2022-9-1 17:23:34
Veno-File-Manager (VFM3-4)存在显示隐藏文件夹(hidden_dirs)漏洞解决办法

解决方法:

根目录/vfm-admin/class/class.location.php 文件,类中成员方法 editAllowed() 代码,其中的成员变量 $father 可能有误,没有把获取到的当前url地址($getDir)转码为中文字符,并且获取的路径始终是开始目录(starting_dir),并不是当前目录,也不是当前目录的子目录,相关代码如下:

  1.         /**
  2.          * Check if editing is allowed into the current directory,
  3.          * based on configuration settings
  4.          *
  5.          * @param string $relative relative path to index.php
  6.          *
  7.          * @return true/false
  8.          */
  9.         public function editAllowed($relative = false)
  10.         {
  11.             global $setUp;
  12.             $totdirs = count($this->path);

  13.             $father = $this->getDir(false, true, false, $totdirs -1);
  14.             $hidden_dirs = $setUp->getConfig('hidden_dirs');
  15.             if (!$hidden_dirs) {
  16.                 return false;
  17.             }
  18.             if (in_array(basename($father), $hidden_dirs)) {
  19.                 return false;
  20.             }
  21.             if ($this->checkUserDir($relative) === true) {
  22.                 return true;
  23.             }
  24.             return false;
  25.         }
复制代码
把其中的成员变量 $father 中的第4个参数 $totdirs -1改为 0,修改后代码如下:
  1. $father = $this->getDir(false, true, false, 0);
复制代码

修改后访问效果:
在当前目录下如果有隐藏文件夹,仍然能列表显示,但是打开隐藏文件夹时,不再显示此隐藏目录下的文件。

与解决此漏洞相关文件:
根目录/vfm-admin/class/class.location.php           //检查当前用户目录权限(修改此文件)

您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。