来源:自学PHP网 时间:2015-04-17 13:02 作者: 阅读:次
[导读] 易通企业网站系统(cmseasy) 注册用户在更新资料时和本地构造groupid表单(判断管理员权限 为888即为管理员),可直接拿提升为管理权限,后台多处可以getShell,只要开放注册 通杀详细说明:漏...
易通企业网站系统(cmseasy) 注册用户在更新资料时和本地构造groupid表单(判断管理员权限 为888即为管理员),可直接拿提升为管理权限,后台多处可以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.2cto.com $sqlud=rtrim($sqlud,','); $this->condition($where); $sql="UPDATE `".$tbname."` SET ".$sqlud." WHERE ".$where; return $sql; } 循环遍历POST 值 然后直接写入数据库更新 导致用户可以自定义权限判断字段 权限提升漏洞 漏洞证明:注册用户名 编辑资料 得到管理权限(ps: 后台超炫) GetShell 修复方案: 不要把前台用户和普通会员放到一个表,任意权限提升, 取消table.php 中的函数sql_update 函数 或做出相应过滤 。 www.2cto.com:可以暂时先关闭注册 作者 CodePlay |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com