初探efucms漏洞及简单分析

efucms是一个基于thinphp二次开发的cms,efucms具备了内容管理系统的大多最基本的功能,包括栏目管理,文章管理等。这是一个开源的项目,下载地址:https://github.com/phplaber/efucms

按照readme中给出的安装方式进行安装;

安装完成后的界面如图所示:

初探efucms漏洞及简单分析

随便点开一个文章:

发现文章最下方有发表评论的内容。

初探efucms漏洞及简单分析

那么首先想到的是xss漏洞,有经验的黑客或者网络安全研究员都知道,留言板是一个xss漏洞的高发区,因为如果一个网站对用户提交的内容没有充分过滤,那么当管理员在后台查看留言时,将会触发黑客提交的payload,导致xss漏洞的发生。

xss漏洞在黑客手中最常见的利用方式,就是盗取管理员cookie.(可以简单的理解为进入后台的一个令牌,拥有此令牌,无需验证用户名和密码)。虽然此案例中仅展示了一个弹窗,但是,其实它的威力还是蛮大的,比如有时sql注入获取了管理员的密文,但是密文可能无法**。而通过xss漏洞拿到管理员cookie则无需密码即可进入后台,并且即使管理员修改了用户名和密码,黑客仍然可以进入后台。

 

存储型XSS漏洞验证过程:

首先,进行黑盒测试,在评论的称呼中写入test</textarea><script>alert(1)</script>

初探efucms漏洞及简单分析

提交发表,发现已经弹窗执行了脚本(在此之前并没有注入xss脚本);

初探efucms漏洞及简单分析

现在,模拟管理员登录后台:

初探efucms漏洞及简单分析

在后台管理界面,只要管理员点击评论管理,可以看到代码也已经执行:(如果之前填写的payload是盗取cookie,而不是弹窗,那么黑客就可以拿到进入后台的令牌,无需用户名和密码。)

 

初探efucms漏洞及简单分析

所以,此处存在存储型xss漏洞;

 

漏洞分析

首先,未过滤就存进了数据库:

查看源代码:

初探efucms漏洞及简单分析

POST到了article/comment中

初探efucms漏洞及简单分析

跳转定位到对应的位置:

初探efucms漏洞及简单分析

发现引用了M函数;然后调用create方法,最后在87行写入了数据库;

首先分析M函数是否有过滤:

M函数定义位于:ThinkPHP\CommonThinkPHP\Common目录下functions.php

初探efucms漏洞及简单分析

发现没有;

 

之后创建了一个comment的Model

初探efucms漏洞及简单分析

也并未进行过滤;

 

最后通过add方法就存进了数据库;

 

初探efucms漏洞及简单分析

在管理员界面显示处也未过滤:

在admin\Run\Cache下生成的一个运行时文件(我这里是:e050f9b27a9bbae1b0a3c73a95217912.php)

初探efucms漏洞及简单分析

直接就进行了echo输出。

最终导致了xss的发生。

-------

PS:我此前已经将此文章首发在合天智汇微信公众号。之前一直忙于学习和科研,没有将这篇文章写到自己博客,今天发现居然已经被其他人发在了博客上。晕。而且还设置为原创!并且在开头专门声明说文章是他原创的,转载请注明出处!!!

https://blog.****.net/weixin_34113237/article/details/86907831

初探efucms漏洞及简单分析

此处是我当时投稿时的邮件:我在10月份就已经投稿了。而他的博客在十一月写的,那时候文章已经发表在了合天公众号上。

初探efucms漏洞及简单分析

 

----------

另外,欢迎各位与我交流相关技术。我的邮箱:lixh2019#qq.com(#换成@)