记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

Disucz 插件漏洞挖掘

2016-08-18 04:15

前言

Discuz 是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件系统。自2001年6月面世以来,Discuz!已拥有15年以上的应用历史和200多万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。

来自第三方漏洞平台Discuz的查询结果:

dz

不完全统计总数: 549!!!

接下来本文主要从五个方面来阐述Disucz 插件漏洞的挖掘技巧;

希望能给大家带来一些思路和灵感!

本文包含以下内容

  1. 基本函数的了解
  2. 基本变量的了解
  3. 插件的调用方法
  4. 几个漏洞实例
  5. 漏洞Exp的构造

1.基本函数的了解

在Discuz中存在如下几个重要的函数

dz2

2.基本变量的了解

在Discuz中比较重要的几个变量如下

dz1

3.插件的调用方法

在discuz中大部分插件都是通过plugin.php文件来调用的

并且通过id参数来指明所需调用的插件,例如如下url

http://www.discuz.net/plugin.php?id=dc_mall

最终调用的文件将是

/source/plugins/dc_mall/dc_mall.inc.php

如果url是

http://www.discuz.net/plugin.php?id=dc_mall:dc_mallaction

最终调用的文件将是

/source/plugins/dc_mall/dc_mallaction.inc.php

比如我们挖某一个插件中的dc_mallaction.inc.php存在漏洞就可以同过如上的方法调用到该文件

plugin.php的id参数只允许包含Inc.php后缀的文件名,若发现dc_mallaction.php存在漏洞,是无法直接通过plugin.php调用的

4.几个漏洞实例

我们在Discuz官方应用市场随机抽取了几个插件来测试

注入

某打赏插件

#漏洞文件 reward.class.php

dz3

//忽略一点无关紧要的代码

dz3

#测试

dz4

任意文件包含

某积分商城插件

#漏洞文件 dc_mall.inc.php

dz6

//忽略一点无关紧要的代码

dz6

#包含测试

dz7test

XSS

某活动插件

#漏洞文件 event_list.inc.php

dz8

//这些参数只是经过了转义,但是并没有将html标签实体化

//忽略一点无关紧要的代码

dz9

//导致这里直接插入数据库,最后在后台输出将会导致存储xss

5.漏洞Exp的构造

这里以 nds_up_ques 插件作为第一个例子,其存在一个sql注入漏洞

在nds_ques_viewanswer.inc.php文件中,首先,通过该文件的文件得知我们可以通过

http://www.discuz.net/plugin.php?id=nds_up_ques:nds_ques_viewanswer

这样的url去调用到这个文件; 然后下面我们来看其中的代码:

dz10

//忽略一点无关紧要的代码

dz11

dz12

//这里可以看到把orderby和imes直接带入查询了,导致了sql注入

那么最终我们的exp便是

http://www.discuz.net/plugin.php?
id=nds_up_ques:nds_ques_viewanswer&&srchtxt=1&orderby=dateline and 1=(updatexml(1,concat(0x27,version()),1))–

Discuz安全测试工具推荐

Dzscan(dzscan.org) Discuz扫描器,完全针对国产Disucz论坛进行开发的扫描器,深度挖掘存在的漏洞,并且有一个正在长期维护的漏洞库。

dz14

参考

《Dzscan》

《Discuz!插件开发文档》

《CoNd0r@CodeScan》

 

*原创作者:re4lity@Arrisec Team  未经允许不得转载。

未经允许不得转载: » Disucz 插件漏洞挖掘

知识来源: www.mottoin.com/87461.html
想收藏或者和大家分享这篇好文章→复制链接地址

“Disucz 插件漏洞挖掘”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云