Bludit cms漏洞挖掘

admin 2023年11月29日02:32:37评论34 views字数 1036阅读3分27秒阅读模式

漏洞分析

第一次听说这个cms,也是atao师傅告诉我的,源码地址-https://bludit.com/

新奇的地方在于不依赖数据库,数据以json形式储存在文件里,我一开始的思路就是去找他的文件写入的点。

入口文件如下。

Bludit cms漏洞挖掘

$url 在 init.php 中定义

此文件只有声明常量,包含php类文件。

Bludit cms漏洞挖掘

Bludit cms漏洞挖掘

在edit-category/general路由 中,可以修改数据,然后写入文件中,对应的文件处理如下。

Bludit cms漏洞挖掘

Bludit cms漏洞挖掘

直接将$_POST整个数组传入,感觉有可以利用的点,一系列的处理如下。

Bludit cms漏洞挖掘

Bludit cms漏洞挖掘

这里会将一些参数做一个strip_tags 的处理,但写到newKey里。

Bludit cms漏洞挖掘

Bludit cms漏洞挖掘

他确实写进去了,但发现在save方法的时候,拼接了第一行defined('BLUDIT')or die('xxx');,妈的。

Bludit cms漏洞挖掘

这几乎在每一个文件中都存在,除过入口文件。而且此常量,也只在入口文件中声明,这就导致我们即使可以通过一些拼接手段注入代码,在没有文件包含的情况下也没有办法利用的,不过我没找见。

无能为力只能写个存储xss了。

Bludit cms漏洞挖掘

后台提供了安装插件的方法。

Bludit cms漏洞挖掘

不过插件都是在本地的bl-plugins文件夹里,然后通过activate将其加载进来。

Bludit cms漏洞挖掘

Bludit cms漏洞挖掘

此处的 $plugins['all'] 是 admin.php 文件中包含了 这个文件

Bludit cms漏洞挖掘

然后此文件中实例化了所有的插件类,将其存入数组中。

Bludit cms漏洞挖掘

在site.php 中有如下调用

Bludit cms漏洞挖掘

这里会遍历存在该type的插件,并调用其beforeall方法。

Bludit cms漏洞挖掘

但其实只会调用已经activate的插件的beforeall方法,所以我们需要先在后台把对应插件下载下来。

在插件中找到一个可以利用的。

Bludit cms漏洞挖掘

Bludit cms漏洞挖掘

跟进downloadfiles方法。

Bludit cms漏洞挖掘

跟进TCP::download,

Bludit cms漏洞挖掘

Bludit cms漏洞挖掘

就是从url获取内容,然后写入目的文件中,最后解压到目的文件所在的目录。

Bludit cms漏洞挖掘

也就是 图片中的 romote-content 目录中,那么我们就可以构造一个压缩包在vps上,然后修改source值就可以写入木马文件了

这个漏洞感觉跟 极致cms后台的一个漏洞很相似。修改source为我们的恶意服务器,并上传带有木马的压缩包。

Bludit cms漏洞挖掘

save之后 trywebhook

Bludit cms漏洞挖掘

这里的try webhook就是把webhook写入配置文件中,然后访问对应webhook的路由,就会去执行该插件的beforeall方法,从而导致我们的恶意文件被下载解压。

Bludit cms漏洞挖掘

成功getshell

Bludit cms漏洞挖掘

来源:https://xz.aliyun.com/ 感谢【j1ang


原文始发于微信公众号(衡阳信安):Bludit cms漏洞挖掘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月29日02:32:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Bludit cms漏洞挖掘https://cn-sec.com/archives/2250122.html

发表评论

匿名网友 填写信息