当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0107375

漏洞标题:森动网(原团IDC)论坛漏洞导致用户可刷积分获得VPS续费码

相关厂商:森动网

漏洞作者: Htroy

提交时间:2015-04-14 14:19

修复时间:2015-05-29 14:20

公开时间:2015-05-29 14:20

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:5

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-14: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-05-29: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

森动网(原团IDC)漏洞导致用户可刷积分获得VPS续费码
www.sendong.net

详细说明:

采用Discuz X3.2以下版本的论坛存在道具刷分以及任务刷分

漏洞证明:

无标题.png


呵呵,这是我刷的

新建位图图像.png


账号证明

修复方案:

在完成任务时(home.php?mod=draw&do=view&id=xx),任务先前的状态缺少判断
完成任务的链接形如:home.php?mod=draw&do=view&id=xx
这个地址最终在 source\class\class_task.php 中被处理
约第370行:

function draw($id) {
global $_G;
if(!($this->task = C::t('common_task')->fetch_by_uid($_G['uid'], $id))) {
showmessage('task_nonexistence');
} elseif($this->task['status'] != 0) {
showmessage('task_not_underway');
} elseif($this->task['tasklimits'] && $this->task['achievers'] >= $this->task['tasklimits']) {
return -1;
}
......


之后就是获得任务奖励了
总觉得上面这一段少了些什么判断?我们对比下其他代码
约第473行:

function giveup($id) {
global $_G;
if($_GET['formhash'] != FORMHASH) {
showmessage('undefined_action');
} elseif(!($this->task = C::t('common_task')->fetch_by_uid($_G['uid'], $id))) {
showmessage('task_nonexistence');
} elseif($this->task['status'] != '0') {
showmessage('task_not_underway');
}


修复方案:

在 source\class\class_task.php 中的 draw 函数部分,加入任务是否领取的判断
即加上
......
elseif($this->task['status'] != '0') {
showmessage('task_not_underway');
}


这样,再次使用漏洞时,就会提示:不是进行中的任务

版权声明:转载请注明来源 Htroy@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝