易通企业网站系统(cmseasy) 权限提升 & getShell通杀漏洞

admin 2021年4月3日20:03:11评论91 views字数 1564阅读5分12秒阅读模式

Author:Yaseng

Team:CodePlay

对于cmseasy这样 比较成熟 用户量大的cms   普通的 sql injection  xss  已然被人搞烂

发现管理和前台普通用户在一个表   就可以干很多猥琐之事了    额  先看代码吧

注册 用户  此时的代码为

文件: user_act.php

function edit_action() {
  if(front::post('submit')) {
        $this->_user->rec_update(front::$post,'userid='.$this->view->user['userid']);
        front::flash(lang('修改资料成功!'));
        front::redirect(url::create('user/index'));
    }
    $this->view->data=$this->view->user;
}

继续跟踪rec_update函数

function rec_update($row,$where) {
    $tbname=$this->name;
    $sql=$this->sql_update($tbname,$row,$where);

    return $this->query_unbuffered($sql);
}

向下sql_update($tbname,$row,$where)    ( 漏洞函数 )

function sql_update($tbname,$row,$where) {
    $sqlud='';
    if (is_string($row))
        $sqlud=$row.' ';
    else
        foreach ($row as $key=>$value) {
            if (in_array($key,explode(',',$this->getcolslist()))) {
                $value=addslashes($value);
                if (preg_match('/^[(.*)]$/',$value,$match))
                    $sqlud .= "`$key`"."= ".$match[1].",";
                elseif ($value === "")
                    $sqlud .= "`$key`= NULL, ";
                else
                    $sqlud .= "`$key`"."= '".$value."',";
               }
        }
    $sqlud=rtrim($sqlud);
    $sqlud=rtrim($sqlud,',');
    $this->condition($where);
    $sql="UPDATE `".$tbname."` SET ".$sqlud." WHERE ".$where;
    return $sql;
}

循环遍历 POST  值  对用户提交的表单直接更新  没有任何判断

导致权限提升  可以直接进后台  getShell

具体利用

测试站点 http://demo.cmseasy.cn/99/  (官方演示站)

注册用户

修改资料

使用firefox 的  tamper  添加字段  groupid

更新之后 权限提升为管理员  网站后面加admin

修改配置  getShell

附  官方补丁分析

5 -16  看了一下官方补丁

官方只是吧,用户编辑资料时传入的 groupid 给删了,而没去修复,真正的罪恶之源  table.php  普通用户和 管理员还在一个表  很明显是治标不治本的  各位同仁有性趣去突破下吧

CodePlay 代码审计  交流群   209547366   (共同进步)

文章来源于lcx.cc:易通企业网站系统(cmseasy) 权限提升 & getShell通杀漏洞

相关推荐: PHP双引号二次解释引来的安全问题

PHP单引号与双引号的区别: 单引号和双引号的唯一的区别就是: 用单引号包起来的PHP解释器不会对其二次解释,而双引号却要二次解释, 看代码: 这样我们知道了单引号与双引号的区别,但是这样会带来一个安全漏洞 确实执行了,那么这就说明.直接赋值的字符串变量尽量用…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月3日20:03:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   易通企业网站系统(cmseasy) 权限提升 & getShell通杀漏洞https://cn-sec.com/archives/325098.html

发表评论

匿名网友 填写信息