近段时间发现很多APP程序用的是thinkcmf,此程序源码存在getshell漏洞,我们Sine安全紧急对此高危漏洞进行了分析和漏洞修复,攻击者可以通过构造特定的请求包get请求即可在远程服务器上执行任意脚本代码。
根据index.php中的配置,项目路径为application,打开Portal下的Controller目录,选择一个控制类文件。
发现他的父类为Common\Controller\HomebaseController。
在HomeBaseController中加入如下测试代码
ThinkPHP是一套基于MVC的应用程序框架,被分成三个核心部件:模型(M)、视图(V)、控制器(C)。
由于添加的代码在控制器中,根据ThinkPHP框架约定可以通过a参数来指定对应的函数名,但是该函数的修饰符必须为Public,而添加的代码正好符合该条件。
可以通过如下URL进行访问,并且可以添加GET参数arg1传递给函数。
cmfx-master/?a=test_publicarg1=run%20success
HomeBaseController类中有一些访问权限为public的函数,重点