php模板注入漏洞,74CMS前台模板引擎注入漏洞漏洞复现

74CMS近日曝出高危模板注入漏洞,攻击者通过注册会员并上传恶意简历,可控制网站服务器。该漏洞由于74CMS允许上传docx格式简历,使得攻击者能上传包含PHP代码的文件,执行任意操作。利用该漏洞,不法分子可能获取服务器权限,对网站安全构成严重威胁。修复此漏洞至关重要,以防止敏感信息泄露。
摘要由CSDN通过智能技术生成

74CMS 曝高危漏洞,攻击者只需注册会员账号,上传一份包含恶意内容的简历,即可控制网站服务器,进行任意操作。

ba832920d650

漏洞复现.jpg

74CMS 又称 “骑士 CMS ”,是一项以 PHP 和 MySQL 为核心开发的一套免费并开源的专业人才网站系统。软件具有执行效率高、模板自由切换、后台管理功能方便等诸多优秀特点。74CMS 多应用于大型人才招聘网站,网站中通常会含有大量会员个人简历等私密信息,因此,该漏洞一旦被不法分子利用将产生极为严重的后果。

漏洞原理:

通过对 74CMS 最新版本进行源码分析,发现此漏洞是一个模板注入漏洞。 在文件 Application/Home/Controller/MController.class.php 中:

ba832920d650

MController.class.php

可见,这里将 $type 参数传入 display 函数,display 函数是 ThinkPHP 中展示模板的函数。跟进了几个函数,进入了 View 类的 display 函数:

ba832920d650

View 类

可见,这里拿到了 $templateFile 并传入 fetch 函数,将 fetch 的结果交给 render 函数。这两个函数,fetch 是将文件内容获取到,render 是使用 ThinkPHP 的模板引擎渲染。

拿自带的 favicon.ico 做下试验,可成功包含:

ba832920d650

e.jpg

漏洞利用:

那么,这个漏洞如何利用?因为 type 的值是作为 display 函数的参数传入的,所以实际上这个漏洞可以理解为 “模板引擎注入”,现在只需要上传一个内容符合 ThinkPHP 模板格式的文件,再作为 type 的值即可。

查看 ThinkPHP 文档:

ba832920d650

favicon.ico

可知,要使用原生 PHP 的话,只需要将代码包含在 标签内即可。

74CMS 里,个人用户创建简历后支持上传 docx 格式的简历。我们上传一个包含一句话木马的 docx 文件,将其作为模板。数据包如下:

ba832920d650

数据包

pid 是简历 id,word_resume 就是包含模板的文件。上传成功,获取文件名和路径:

ba832920d650

回显数据包

再将这个文件名作为 type 的值,成功执行一句话木马,CKnife(网站管理工具)连接,获取服务器权限:

ba832920d650

远控

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值