ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于ThinkPHP开发,使用范围非常广泛!小编使用的是ThinkCMF X2.2.2版本。
最近小编发现服务器被黑,发现一个漏洞,该漏洞可以被远程攻击者利用,通过构造特定的请求包即可在远程服务器上执行任意代码。
经分析访问日志发现很多类似的内容:
"GET /?a=fetch&templateFile=public/index&prefix=''&content=%3Cphp%3Efile_put_contents('test1.php',base64_decode('PD9waHAgcGhwaW5mbygpOyA/Pg=='))%3C/php%3E HTTP/1.1" 200 -
经过分析,发现在Common\Controller\HomebaseController.class和AdminbaseController.class中,类中有一些访问权限为public的函数,ThinkPHP框架可以通过a参数来指定对应的函数名,但是该函数的修饰符必须为Public, 而添加的代码正好符合该条件。
HomeBaseController和AdminbaseController只需要将类中 display 和 fetch 函数的修饰符改为 protected,即可避免漏洞被利用导致被黑。
请抓紧检查一下你使用的版本是否存在此漏洞吧!
本文暂时没有评论,来添加一个吧(●'◡'●)