FineCMS v2.1.5前台一处XSS+CSRF可getshell

FineCMS一个XSS漏洞分析

FineCMS是一套用CodeIgniter开发的中小型内容管理系统,目前有三个分支:1.x,2.x,5.x,这次分析的是2.x的最新版2.1.5

一、用户输入

既然是XSS,那么就一定有用户的输入以及输出。

$data = $this->input->post('data', TRUE);中第二个参数为TRUE表示数据会经过xss_clean()函数进行过滤,然后就进行过滤。xss_clean()其实是很难绕过的,如果输出点在属性值中,产生XSS的可能性就很大。

二、输出点①

前台触发

它使用了模板引擎,然后输出到member/space的模板上。

因此,这里我们构造的XSS-Payload如下所示。

三、输出点②

后台触发

上面就是出库->赋值->输出的一个过程,下面看看问题模板文件。

因此构造出来的语句就应该是:

四、利用

这里数据库对avatar字段有长度限制,因此利用jQuery加载外部的JS代码;并且,从后台找了一个修改模板的地方,利用代码如下:

JS代码如下

管理员点击用户名之后即会触发XSS->修改模板

此条目发表在代码审计分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注