Discuz! X3.1 刷分系列漏洞

hacker4年前黑客文章1026
在完成任务时(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');

	}


这一段是放弃任务的判断,我们看到如果 $this->task['status'] != '0',就是说任务没有开始的时候,是不能放弃任务的。

但是,在上面那段获取任务奖励的代码中,并没有判断任务是否开始,造成了无需领取任务,就可以无限次数获取奖励。

此漏洞还可以用于强行获取由于用户组不符,没有权限领取的任务的奖励。

漏洞详细利用,请见漏洞证明。

漏洞证明:

1、新建一个任务,就选择红包类任务吧

2、此时千万不要申请任务,而是进入任务详细页面(完成之后就不能刷了)

home.php?mod=task&do=view&id=2


这样就能看到任务详情了,任务的奖励是 威望+1。

我们把地址改为领取任务奖励

home.php?mod=task&do=draw&id=2


打开这个地址,获得了 威望+1。

不断刷新这个页面,即可不断获得奖励。

修复方案:

在 source\class\class_task.php 中的 draw 函数部分,加入任务是否领取的判断

即加上

......

 elseif($this->task['status'] != '0') {

	showmessage('task_not_underway');

}


这样,再次使用漏洞时,就会提示

标签: 黑客技术

相关文章

TourEx旅游网站管理系统后台拿webshell

TourEx旅游网站管理系统 百度不到。 模板管理-/car/booking.html  编辑 burp抓包,改为/admin/Admin_TemplateEdit.a...

详解webshell提权服务器的21种方法

详解webshell提权服务器的21种方法

详解webshell提权服务器的21种方法 1.radmin连接法   条件是你权限够大,对方连防火墙也没有。封装个radmin上去,运行,开对方端口,然后radmin上去...

如何打造个人成功博客教程:建站思路与上线

如何打造个人成功博客教程:建站思路与上线

  目前有不少的站长是在做博客网站的,特别是很多新手。因为博客比较简单,需要的精力还有技术相对来说都比较少一点。不过据我一直观察真正会做博客的站长其实真的很少,大部分的博客...

专用工具完全免费使用方法

专用工具完全免费使用方法

什么叫Scapy? Scapy是一种十分火爆且有效的数据文件解决专用工具,能够 根据实际操作数据文件来工作中。Scapy能够 在普遍的协议书范畴内编解码数据文件,将其发送至网上,捕捉,关系推送恳求和...

专用工具完全免费使用方法

专用工具完全免费使用方法

什么叫Nessus? Nessus是大家都知道的漏洞扫描器之一,非常是Unix电脑操作系统。即便她们在2006年关掉了源码,并在2008年删除了完全免费版本号,该专用工具依然战胜了很多竞争者。该专用...

只有webshell,一样可以做代理,如何使用脚本程序做代理

只有webshell,一样可以做代理,如何使用脚本程序做代理

有时候要代理进内网,但是服务器没有外网端口,也没法执行命令反弹lcx什么的,也没有提权什么什么的,只有一个webshell,这个时候就比较蛋疼了。 鄙人不才,写了一个比较山寨的php...