欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Metinfo 6.1.3 XSS漏洞分析

来源:本站整理 作者:佚名 时间:2019-03-17 TAG: 我要投稿


 
前言
前段时间看到一个cms造成的xss漏洞,这里想分析下。这个漏洞是metinfo6.1.3版本因参数问题造成前台和后台引起了两处xss漏洞。
这个漏洞的影响范围一直到最新版本(6.1.3),因为前段时间爆出的漏洞,所以新版本应该已修复。
cms最新6.13下载地址:https://www.mituo.cn/download/
 
前台漏洞分析( CVE-2018-20486)
通过在前台插入xss访问,然后会在后台触发xss,造成xss攻击。
漏洞的触发点在admin/login/login_check.php

这里加载了$commonpath=$depth.’include/common.inc.php’,然后在如下的代码段里存在变量覆盖漏洞: (admin/include/common.inc.php 77行)

然后往下分析,回头看admin/login/login_check.php这段代码

$url_array变量是我们可控的,从而控制$truefile变量,进入下个if语句,if语句中存在更改数据库信息的mysql语句,从而可以直接更改数据库信息
$_M 数组是一个包含了网站设置,系统调用等信息的总和数组,具体内容如下:
  $_M[config]:网站配置数组,里面可以查询到所有的网站配置数据。
    $_M[form]:提交的GET,POST,COOKIE表单数组。在系统中不要直接使用$_POST,$_GET,$_COOKIE,
        这些都是没有过滤的,$_M[form]中是已经安全过滤后的数组。
    $_M[langlist]:语言设置数组,其中$_M[langlist][web]为前台语言设置,
            $_M[langlist][admin]为后台语言设置。
    $_M[lang]:前台语言,如果你是在网站前台,则这个值是你当前访问的语言,
        如果是后台,则这个值是你当前编辑的语言。
    $_M[table]:系统表名称。
    $_M[url]:系统一些常用URL入口地址。
    $_M[url][site_admin] :网站后台地址
    $_M[url][site] :网站前台地址
    $_M[url][entrance] :框架入口地址
    $_M[url][own] :当前执行的应用根目录地址
    $_M[url][app] :应用根目录地址
    $_M[url][pub] :系统公用文件(html.css,js)地址
    $_M[url][ui] :当前class所使用的UI地址,前台为“系统ui根目录/web”;,
                    后台为“系统ui根目录/admin”。
    $_M[user][cookie]:用户cookie信息,建议不要直接取值,使用get_met_cookie()取值。
    $_M[word]:当前的语言参数。
    $_M[plugin]:系统插件数组。
然后在 app/system/include/class/common.class.php中
    $_M['config']['met_adminfile_code'] = $_M['config']['met_adminfile'];
        $_M['config']['met_adminfile'] = authcode($_M['config']['met_adminfile'],'DECODE', $_M['config']['met_webkeys']);
        if ($_M['config']['met_adminfile'] == '') {
            $_M['config']['met_adminfile'] = 'admin';
            $met_adminfile = authcode($_M['config']['met_adminfile'],'ENCODE', $_M['config']['met_webkeys']);
            $query = "UPDATE {$_M['config']['tablepre']}config SET `value` = '$met_adminfile' where `name`='met_adminfile'";
            $result = DB::query($query);
        }
我们可以看到,met_adminfile是我们可控的值存在于$_M[‘config’][‘met_adminfile’]中,也就是通过这个就可以找到我们可以构造的点了。

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载