Discuz 7.2/X1 第三方插件SQL注入及持久型XSS漏洞

漏洞详情

披露状态:

2010-07-31: 细节已通知厂商并且等待厂商处理中
2010-08-01: 厂商已经确认,细节仅向厂商公开
2010-08-11: 细节向核心白帽子及相关领域专家公开
2010-08-21: 细节向普通白帽子公开
2010-08-31: 细节向实习白帽子公开
2010-08-31: 细节向公众公开

简要描述:

Discuz 7.2/X1 第三方插件SQL注入及持久型XSS漏洞。
SQL注入比较鸡肋,要求GPC为off(目前这样的网站几乎绝版了)
XSS因为是持久型的,只要管理员打开此应用即会触发。利用XSS怎么操作就见仁见智了。

详细说明:

由Discuz认证的(http://addons.discuz.com/workroom.php)第三方开发团队“潮流少年工作室 Teen Studio”出品的心情墙插件(http://www.discuz.net/forum.php?mod=viewthread&tid=1632898),因变量未初始化及过滤不严导致SQL注入及跨站脚本漏洞。
moodwall.inc.php
SQL注入,除下面代码这一处外,本文件还有很多处这样的或是$_POST得到后直接用的情况。惨不忍睹。

elseif($action == 'edit_mood' && moodid) {
          //moodid未初始化,直接代入sql查询
	  $check = $db->result_first("SELECT * FROM {$tablepre}moodwall WHERE id='$moodid' AND uid='$discuz_uid'");
	  if(!$check || !$moodid) {
		  showmessage('moodwall:moodwall_inc_php_2', 'plugin.php?id=moodwall&action=user_mood');
	  }
	  $sql = "SELECT * FROM {$tablepre}moodwall WHERE id='$moodid'";
	  $query = $db->query($sql);
	  $moodlist_edit = array();
	  while($mood_edit = $db->fetch_array($query)) {
		  $moodlist_edit[] = $mood_edit;
	  }


XSS

$uid=$_POST[uid];
	 $username=$_POST[username];
	 $bgpic=$_POST[bgpic];
	 $mood=$_POST[mood];
	 $message=$_POST[message];
	 $dateline=time();
          //$_POST得到数据直接入库,前端出库代码也没有做过滤,这里就不贴了。
	 $db->query("INSERT INTO {$tablepre}moodwall (uid,username, bgpic, mood, message, dateline) VALUES ('$uid', '$username', '$bgpic', '$mood', '$message', '$dateline')");

漏洞证明:

随意找一个安装此应用的网站:

/plugin.php?id=moodwall&action=edit_mood&moodid=2'


发表心情处直接插入html代码

"><script>alert(/xss/)</script>

修复方案:

过滤啊过滤,初始化啊初始化。
强烈建议Discuz 团队对第三方的应用做严格的审查后再在自己的官方论坛上发布。Discuz 败在插件上也不是一次两次了。

版权声明:转载请注明来源 CnCxzSec(衰仔)@乌云

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值