18912359608
网站建设资讯详细

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

来源:http://www.zanwuxi.cn/ 日期:2022-03-16 10:34:18

ThinkCMF最新网站漏洞 修复建议实施木马漏洞

最近发现了很多。APP程序用的是thinkcmf,该程序的源代码存在getshell漏洞,我们紧急分析和修复了这个高危漏洞,攻击者可以通过结构特定的请求包get在远程服务器上执行任何脚本代码。

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

发现他的父类是CommonControllerHomebaseController。

在HomeBaseController添加以下测试代码

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

控制器中添加的代码,根据ThinkPHP框架协议可以通过a参数指定相应的函数名,但函数的修饰符必须是Public,添加的代码正好符合这个条件。

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

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

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中完成

下面的调用可以加载任何文件

执行漏洞

建议修复网站漏洞修复建议

通过审计代码发现问题的重点是display 和 fetch 修改函数的修改符模板函数,如果不熟悉程序代码,建议联系专业网站安全公司修复漏洞,对此很多app调用此程序api接口源代码,建议您首先进行全面的网站漏洞检测和渗透测试,以防止此类攻击的危害。