一、背景介绍
梦想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
请登录后发表评论
注册