易通企业网站系统(cmseasy) 权限提升的方法及getShell通杀漏洞的介绍

详细说明:
    漏洞文件在table.php中的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); www.jb51.net
            $sqlud=rtrim($sqlud,',');
            $this->condition($where);
            $sql="UPDATE `".$tbname."` SET ".$sqlud." WHERE ".$where;
            return $sql;
        }
    循环遍历POST 值 然后直接写入数据库更新 导致用户可以自定义权限判断字段
    权限提升漏洞
    漏洞证明:注册用户名
    编辑资料
     
    得到管理权限(ps: 后台超炫)
     
    GetShell
     
    
    修复方案:
    不要把前台用户和普通会员放到一个表,任意权限提升, 取消table.php 中的函数sql_update 函数 或做出相应过滤 。
    可以暂时先关闭注册
    作者 CodePlay 【