在雷风影视CMS最新版本中,其后台模板修改的地方由于对模板文件的保存路径没有进行有效的校验,导致攻击者可以构造恶意的保存路径,再加上攻击者可以控制保存的模板内容,从而导致getshell。
此CMS是基于ThinkPHP框架写的,存在漏洞的URL在/admin.php?s=Template/edit.html这个地方,根据ThinkPHP框架结构可以找到漏洞存在的文件路径是\Application\Admin\Controller\TemplateController.class.php,在此文件的58行处就是导致漏洞存在的关键地方,如下:
可以看到,这里只是简单的把提交的URL参数中的path路径中的‘*’替换成‘/’符号,并没有对替换后组成的路径进行实质性的过滤,从而攻击者可以直接控制要保存的文件地址。这里实验选择要保存的shell文件位于网站根目录下的\Application\Common\Conf\tags.php文件,C('TPL_PATH')返回的结果代表着网站根目录下的Template目录,从而最终构造路径为Template/../Application/Common/Conf/tags.php,把‘/‘符号替换成‘*’符号后变成了Template*..*Application*Common*Conf*tags.php,去掉C('TPL_PATH')头部就是*..*Application*Common*Conf*tags.php了,最终如下:
执行上面的请求后,tags.php文件内容就变了,这里可以直接写入PHP代码来getshell,然后直接请求这个文件就可以看到效果,如下:
CMS下载官网地址:http://www.lfdycms.com