Disucz 插件漏洞挖掘
副标题[/!--empirenews.page--]
前言Discuz 是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件系统。自2001年6月面世以来,Discuz!已拥有15年以上的应用历史和200多万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。 来自第三方漏洞平台Discuz的查询结果: 不完全统计总数: 549 接下来本文主要从五个方面来阐述Disucz 插件漏洞的挖掘技巧; 希望能给大家带来一些思路和灵感! 本文包含以下内容
1.基本函数的了解在Discuz中存在如下几个重要的函数 $Result=DB::query("select 1");//用来执行sql语句? DB::result($Result); //用来获取执行SQL语句的之后的结果? DB::fetch ( $query2 );// 也用来获取执行SQL语句的之后的结果? showmessage(); //用来输出discuz的提示信息,并且输出完之后会退出? DB::table ( 'ques_user' ); //用来根据自定义的表前缀生成出带有表前缀的表名(discuz就算sql语句报错输出的时候也会自动将表前缀隐)? include template ( 'nds_up_ques:ques_stats' ); //template会返回nds_up_ques插件目录下template目录中的ques_stats.html,用来包含使用模版 2.基本变量的了解$_G ['gp_orderby'];//前面的gp代表get和post,表示从get和post方式获取orderby参数。? $_G ['cache'] ['plugin'] ['nds_up_ques']['creditmax']; //表示读取data目录下cache目录里面nds_up_ques文件下面的creditmax,一般不可控? $_G ['adminid'];// 管理员ID的标志位,普通用户登录的话就为空? $_G ['uid']; ? ?// 用户ID的标志位,普通用户登录则存在的当前用户的ID,未登录则为空? IN_DISCUZ,IN_ADMINCP //俩个宏,一个是判断是否在dz的代码调用,一个是判断是否是后台调用,IN_DISCUZ是用来判断是否是直接访问的,若直接访问则不给予执行;一般ADMINCP用来判断是否后台调用也就///是判断是否是管理员使用,也代表该插件只能在后台调用 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存在漏洞就可以同过如上的方法调用到该文件 (编辑:瑞安网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |