初探efucms漏洞及简单分析

efucms是一个基于thinphp二次开发的cms,efucms具备了内容管理系统的大多最基本的功能,包括栏目管理,文章管理等。这是一个开源的项目,下载地址:GitHub - phplaber/efucms: The simple, easy-to-use cms based ThinkPHP

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

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

随便点开一个文章:

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

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

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

存储型XSS漏洞验证过程:

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

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

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

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

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

漏洞分析

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

查看源代码:

POST到了article/comment中

跳转定位到对应的位置:

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

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

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

发现没有;

之后创建了一个comment的Model

也并未进行过滤;

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

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

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

直接就进行了echo输出。

最终导致了xss的发生。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值