漏洞详情

披露状态:

2014-01-24: 细节已通知厂商并且等待厂商处理中
2014-01-24: 厂商已经确认,细节仅向厂商公开
2014-01-27: 细节向第三方安全合作伙伴开放
2014-02-03: 细节向核心白帽子及相关领域专家公开
2014-02-13: 细节向普通白帽子公开
2014-03-05: 细节向实习白帽子公开
2014-04-24: 细节向公众公开

简要描述:

Discuz!X最新版本(及部分旧版本所存在的刷分漏洞)
这几天整理DZ的刷分漏洞,原本打算出个系列发上来,结果发现不少漏洞都已经fix了,这可能已经是系列的最后一个了吧。

详细说明:

在使用“千斤顶”道具时,使用的数量缺少负值判断



上面的一句话已经很清晰地说明问题了,所以这里就不分析的很详细了



使用“千斤顶”道具时,会调用以下文件:

source\class\magic\magic_jack.php



在该文件的57行开始,是使用道具的部分:

function usesubmit() {
...
$magicnum = intval($_GET['magicnum']);
...
}





其中的$magicnum就是在使用道具时,填写的使用数量。

填入正数时,会正常消耗相应数量的“千斤顶”道具。

但由于这个变量未进行负值判断,造成填入负数时,可以直接获得大量“千斤顶”道具。



具体重现步骤,在漏洞说明中详述。

漏洞证明:

1、购买一个千斤顶道具

2、打开任意帖子,在右下角选择“千斤顶”道具,提示:

本次使用数量:





3、填入一个负数,如-100,点击使用,提示:

千斤顶成功将主题顶起





4、查看道具数量,现在有101个千斤顶

之后将这些道具卖掉即可刷取积分

修复方案:

打开 source\class\magic\magic_jack.php

查找(约在第67行):

if(empty($magicnum) || $magicnum > $this->magic['num']) {





替换为

if(empty($magicnum) || $magicnum <= 0 || $magicnum > $this->magic['num']) {



这样,使用道具填入负数时,就会提示

道具数量不足或没有填写使用数量。



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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2014-01-24 11:01

厂商回复:

感谢

最新状态:

暂无


漏洞评价: