FastAdmin会员中心Getshell漏洞以及修复方法
时间:2023年05月17日
/来源:网络
/编辑:佚名
【风险通告】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 漏洞
漏洞组件
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
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03