梦想v1.4 CMS平台XSS漏洞分析 – 作者:jj2056

一、背景介绍

梦想cms以下简称“lmxcms”,是由“10年”(网名)开发的一套简单实用的网站管理系统(cms)。它是完全免费和开源的。

漏洞类型:

存储型xss注入

漏洞描述:

在Lmxcms 1.4版本(目前最新版本)中,存在一处后台xss漏洞。Lmxcms未对编辑的产品内容进行过滤处理,从而导致漏洞发生。

受影响的系统版本:

LMXCMS <=V1.4

二、漏洞分析

通过黑盒测试,我们在后台管理员页面发现了一个存储型xss漏洞。该漏洞存在于admin.php页面的内容管理中的产品信息修改页面中

查看该点

尝试在该点进行xss注入

</textarea><sccript>alert(‘xss’)</script><textarea>

注入结果失败,没有弹窗,接着打开burpsuite截包分析

发现注入内容被转码,尝试在burpsuite进行改造

发包,接着打开页面发现弹窗,说明xss注入成功

三、代码审计

3.1.先定位到漏洞存在点的提交页面

在这里我们发现了提交页面是当前admin.php页面后接参数&m和&a来提交到相应页面

3.2.通过代码审计,定位该页面

1-先到主页面admin.php页面,发现这里存在两个文件包含

2-进入到/inc/run.inc.php继续查找参数&m和&a

在这里我们找到了参数&m和&a

通过代码审计,发现如果在html上提交了&m的值,就会创建一个action对象,执行run()函数

3-追踪run()函数

该函数作用是执行当前对象的&a方法,&a为在html上提交的参数&a的值update

也就是执行当前对象的update()方法

4-追踪update()方法

通过函数定位,找到多个update()方法

观察发现有个路径是/c/admin/ContentAction.class.php

符合要寻找参数&m的值Content

进入该页面发现update()函数是更新数据的,当漏洞页面提交了数据之后会把数据提交到该页面,并且更新信息,在这可以发现更新数据会调用一个check()函数,接着定位并查看该函数

定位到我们需要查看的ContentAction.class.php页面

5-check()函数

在该函数下可以发现数据并没有进行过滤,漏洞页面上提交的数据原样提交上来,这就是xss注入的漏洞点

通过定位updateInfo,可以找到漏洞页面html代码

在该页面可以发现漏洞点提交的数据’description’

该点就是本文的xss注入点

四、小结

通过黑盒测试和代码审计发现,该平台的管理员页面多处存在着存储型xss漏洞,攻击者如果通过爆破等方式进入到管理员后台的话就可以进行xss存储型注入,网站管理者需要对该后台页面进行xss过滤的安全措施。

*本文作者:jj2056,转载请注明来自FreeBuf.COM

来源:freebuf.com 2019-11-19 10:00:34 by: jj2056

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论