美文网首页
74CMS前台模板引擎注入漏洞漏洞复现

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

作者: 陌小皓 | 来源:发表于2017-03-29 09:11 被阅读0次

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

    漏洞复现.jpg

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


    漏洞原理:

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


    MController.class.php

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

    View 类

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

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


    e.jpg
    漏洞利用:

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

    查看 ThinkPHP 文档:

    favicon.ico

    可知,要使用原生 PHP 的话,只需要将代码包含在 <php> 标签内即可。
    74CMS 里,个人用户创建简历后支持上传 docx 格式的简历。我们上传一个包含一句话木马的 docx 文件,将其作为模板。数据包如下:

    数据包

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

    回显数据包

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

    远控

    参考链接:
    https://forum.90sec.org/forum.php?mod=viewthread&tid=10311

    相关文章

      网友评论

          本文标题:74CMS前台模板引擎注入漏洞漏洞复现

          本文链接:https://www.haomeiwen.com/subject/ibqeottx.html