74CMS曝高危漏洞,攻击者只需注册会员账号

优采云 发布时间: 2021-06-04 22:21

  74CMS曝高危漏洞,攻击者只需注册会员账号

  74cms 暴露高风险漏洞。攻击者只需注册会员账号并上传收录恶意内容的简历即可控制网站服务器并进行任意操作。

  

  漏洞复现.jpg

  74cms,又名“骑士cms”,是一个以PHP和MySQL为核心开发的免费开源的专业网站系统。该软件具有执行效率高、模板自由切换、后台管理功能方便等诸多优秀功能。 74cms多用于*敏*感*词*的人才招聘网站,网站通常收录大量会员简历等私密信息,因此该漏洞一旦被*敏*感*词*利用,后果将极其严重。

  漏洞原理:

  通过对74cms最新版本源代码的分析,发现该漏洞为模板注入漏洞。在文件 Application/Home/Controller/MController.class.php 中:

  

  MController.class.php

  可以看出,这里将$type参数传入display函数中,该函数是ThinkPHP中显示模板的函数。跟进几个函数,进入View类的显示函数:

  

  查看类

  如你所见,这里我得到了 $templateFile 并将其传递给了 fetch 函数,并将 fetch 的结果传递给了 render 函数。对于这两个函数,fetch是获取文件内容,render是使用ThinkPHP的模板引擎进行渲染。

  拿内置的favicon.ico做个实验,可以成功收录:

  

  e.jpg

  利用:

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

  查看 ThinkPHP 文档:

  

  favicon.ico

  如你所见,如果你想使用原生PHP,你只需要在

  中收录代码

  就在标签内。

  在74cms中,个人用户可以在创建简历后上传docx格式的简历。我们上传一个收录单句木马的 docx 文件并将其用作模板。数据包如下:

  

  数据包

  pid 是简历 ID,而 word_resume 是收录模板的文件。上传成功,获取文件名和路径:

  

  回声包

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

  

  *敏*感*词*

  参考链接:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线