最新公告
  • 欢迎您光临源码资源下载站,一个优质的网站源码和小程序源码分享基地。
  • FastAdmin会员中心Getshell漏洞以及修复方法

    正文概述 建站知识   2023-12-15 21:10:55  
    【风险通告】FastAdmin会员中心Getshell漏洞
    尊敬的腾讯云客户:
        您好,近日,Fastadmin 前台被曝存在 getshell 漏洞。攻击者可利用该漏洞传入包含指定路径的后门文件,进而获取应用控制权限。
        为避免您的业务受影响,腾讯云安全中心建议您及时修复。
    漏洞名称
    FastAdmin 前台 getshell 漏洞
    漏洞组件
    FastAdmin是一款基于ThinkPHP5 + Bootstrap的极速后台开发框架,具有强大的一键生成、完善的前端功能组件开发和强大的插件扩展等功能。
    漏洞描述
    在/application/index/User.php文件中,由于_empty方法的$name参数可控,可导致fetch模板注入。攻击者可利用该漏洞传入包含指定路径的后门文件,进而getshell。该漏洞利用需要开启会员中心功能。
    修复建议
    1、建议临时关闭站点会员中心功能,操作如下:
      打开/application/config.php文件,修改'usercenter' => false
    复制
    2、暂时关闭文件上传功能,避免攻击者上传恶意文件。
    软件商给与的修复方法
    FastAdmin于2020年09月20日发布临时V1.0.0.20200920_beta版本,其中包含重要的安全更新,建议FastAdmin版本在V1.0.0.20180911_beta~V1.0.0.20200506_beta之间的版本立即进行更新,由于会员中心的_empty方法未严格过滤参数$name有可能导致GetShell的漏洞,建议你立即进行更新。
    历史安全更新
    https://www.fastadmin.net/download.html#security
    修复方法
    打开application/index/controller/User.php,找到大概第58行的_empty方法,有以下两种修复方法:
    一种修复方法是直接移除_empty方法,
    另一种是将_empty方法改为
    public function _empty($name)
        {
            if (!preg_match("/^([a-z0-9_]+)$/i", $name)) {
                $this->error(__('Invalid parameters'));
            }
            $data = Hook::listen("user_request_empty", $name);
            foreach ($data as $index => $datum) {
                $this->view->assign($datum);
            }
            return $this->view->fetch('user/' . $name);
        }
    这个方法设计的用途主要是用于插件系统,便于插件开发者在处理前台用户相关信息时可以使用自定义URL的方式访问到自定义的视图,便于共用布局和JS。
    目前暂未有相关插件使用到此方法,移除后此功能并不会影响你的业务逻辑,同时未来FastAdmin未来版本也会移除此方法。
    关注提示
    使用开源框架务必关注官方动态,如果有漏洞我们都会在第一时间发布更新和修复方法,感谢您对FastAdmin的支持。
    安全提示
    安全不仅仅代码安全,同时还涉及到服务器安全等多方面,建议你配置好服务器相关安全配置,做好目录权限控制,以下是我们的安全建议:
    建议启用application/config.php中的cookie配置中的httponly设置为true,如果是https,建议secure也配置为true
    FastAdmin目录安全配置,请参考:https://ask.fastadmin.net/article/5707.html
    禁用后台admin模块,启用独立的后台登录入口,最新版已经默认禁用 admin 模块。
    新增网站配置时务必绑定public目录,同时启用open_basedir限制只允许FastAdmin的根目录,例如:fastcgi_param PHP_VALUE "open_basedir=/var/www/fastadmin/:/tmp/:/proc/";
    修改php.ini,禁用不安全的函数,配置如disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru
    修版本没有此问题!
    文章地址:https://www.fastadmin.net/news/83.html FastAdmin会员中心Getshell漏洞以及修复方法
    皓玉源码网,一个优质的源码资源平台!
    皓玉源码网 » FastAdmin会员中心Getshell漏洞以及修复方法