易通企业网站系统(cmseasy) 权限提升的方法及getShell通杀漏洞的介绍
发布日期:2022-01-27 15:27 | 文章来源:源码之家
详细说明:
漏洞文件在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 【
漏洞文件在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 【
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。
相关文章