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

  发布时间:2012-05-21 09:13:00   作者:佚名   我要评论
易通企业网站系统(cmseasy) 注册用户在更新资料时和本地构造groupid表单(判断管理员权限 为888即为管理员),可直接拿提升为管理权限,后台多处可以getShell,只要开放注册通杀
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

详细说明:

漏洞文件在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 【

相关文章

最新评论

?


http://www.vxiaotou.com