加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

ThinkCMF最新网站漏洞 对于实行生成木马漏洞的修复建议

发布时间:2023-06-13 09:58:51 所属栏目:经验 来源:
导读:近段时间发现很多APP程序用的是thinkcmf,此程序源码存在getshell漏洞,我们Sine安全紧急对此高危漏洞进行了分析和漏洞修复,攻击者可以通过构造特定的请求包get请求即可在远程服务器上执行任意脚本代码。根据index.php

近段时间发现很多APP程序用的是thinkcmf,此程序源码存在getshell漏洞,我们Sine安全紧急对此高危漏洞进行了分析和漏洞修复,攻击者可以通过构造特定的请求包get请求即可在远程服务器上执行任意脚本代码。

根据index.php中的配置,项目路径为application,打开 Portal 下的 Controller 目录,选择一个控制类文件。

发现他的父类为Common\Controller\HomebaseController。

ThinkPHP是一套基于MVC的应用程序框架,被分成三个核心部件:模型(M)、视图(V)、控制器(C)。

由于添加的代码在控制器中,根据ThinkPHP框架约定可以通过a参数来指定对应的函数名,但是该函数的修饰符必须为Public, 而添加的代码正好符合该条件。

可以通过如下URL进行访问,并且可以添加GET参数arg1传递给函数。

cmfx-master/?a=test_public&arg1=run%20success

HomeBaseController类中有一些访问权限为public的函数,重点关注display函数.看描述就是可以自定义加载模版,通过$this->parseTemplate 函数根据约定确定模版路径,如果不符合原先的约定将会从当前目录开始匹配。

然后调用THinkphp Controller 函数的display方法

/**

* 加载模板和页面输出 可以返回输出内容

* @access public

* @param string $templateFile 模板文件名

* @param string $charset 模板输出字符集

* @param string $contentType 输出类型

* @param string $content 模板输出内容

* @return mixed

*/

public function display($templateFile = '', $charset = '', $contentType = '', $content = '', $prefix = '') {

parent::display($this->parseTemplate($templateFile), $charset, $contentType,$content,$prefix);

}

再往下就是调用Think View的fetch方法,这里的TMPL_ENGINE_TYPE 为Think, 最终模版内容解析在ParseTemplateBehavior中完成

如下调用即可加载任意文件

http://127.0.0.1:81/cmfx-master/?a=display&templateFile=README.md

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!