简要描述:普通用户提权漏洞,可以提升为管理员权限。 详细说明:<漏洞分析> HdhCmsTest2cto测试数据 ajaxmember.php
case "modifyDetails": $user = $_POST['user']; if(getPopedom(5) == 0) { $user['usertitle'] = ''; }
if($user["email"] == "") { exit("资料不完整。"); }
foreach(explode(",", $cache_settings['reservedkeyword']) as $rkey) { if(!empty($rkey) && stristr($user['usertitle'], $rkey)) { exit("自定义头衔含有禁用关键字"); } }
$db->row_update("users", $user, "id={$lg['userid']}"); succeedFlag();
break;
user 数组未做任何限制导致用户POST一个user[groupid]=203的字段,row_update就会更新users表的groupid字段,把普通用户的权限更改为管理员。 漏洞 证明:<漏洞利用> 1、 注册并登陆一个用户。 2、 向/ajaxmember.php?action=modifyDetails页面post数据 user%5Bgroupid%5D=203&user%5Bemail%5D=aaaa%40aaaa测试数据 3、重新登录用户,即为管理员权限。
修复方案:在更新之前加上验证语句,只保留允许更新的字段。
作者 insight-labs@乌云
查看更多关于6KBBS v8.0 普通用户提权漏洞 - 网站安全 - 自学ph的详细内容...