灰儿 发表于 2018-1-3 09:24:12

PHPCMS v9.6.3存在文件包含漏洞-修复方法

修复方法:

phpcms\libs\classes\param.class.php
phpsso_server\phpcms\libs\classes\param.class.php

源代码:
      public static function get_cookie($var, $default = '') {
                $var = pc_base::load_config('system','cookie_pre').$var;
                $value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE', md5(PC_PATH.'cookie'.$var).pc_base::load_config('system','auth_key')) : $default;
                if(in_array($var,array('_userid','userid','siteid','_groupid','_roleid'))) {
                        $value = intval($value);
                } elseif(in_array($var,array('_username','username','_nickname','admin_username','sys_lang'))) { //site_model auth
                        $value = safe_replace($value);
                }
                return $value;
      }

修改后的代码:
      public static function get_cookie($var, $default = '') {
                $var_base = $var;
                $var = pc_base::load_config('system','cookie_pre').$var;
                $value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE', md5(PC_PATH.'cookie'.$var).pc_base::load_config('system','auth_key')) : $default;
                if(in_array($var_base,array('_userid','userid','siteid','_groupid','_roleid'))) {
                        $value = intval($value);
                } elseif(in_array($var_base,array('_username','username','_nickname','admin_username','sys_lang'))) { //site_model auth
                        $value = safe_replace($value);
                }
                return $value;
      }



页: [1]
查看完整版本: PHPCMS v9.6.3存在文件包含漏洞-修复方法