当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-037962

漏洞标题:Z-Blog PHP版之三低权限管理员POST注入

相关厂商:Z-Blog

漏洞作者: 只发通用型

提交时间:2013-09-24 12:24

修复时间:2013-12-23 12:24

公开时间:2013-12-23 12:24

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-09-24: 细节已通知厂商并且等待厂商处理中
2013-09-24: 厂商已经确认,细节仅向厂商公开
2013-09-27: 细节向第三方安全合作伙伴开放
2013-11-18: 细节向核心白帽子及相关领域专家公开
2013-11-28: 细节向普通白帽子公开
2013-12-08: 细节向实习白帽子公开
2013-12-23: 细节向公众公开

简要描述:

注册个评论者账号就能注到管理员

详细说明:

木有找到你们接受POST变量的函数在哪,所以认为问题出在/zb_system/function/lib/dbsql.php

public function ParseWhere($where){
global $zbp;
$sqlw=null;
if(!empty($where)) {
$sqlw .= ' WHERE ';
$comma = '';
foreach($where as $k => $w) {
$eq=$w[0];
if($eq=='='|$eq=='<'|$eq=='>'|$eq=='LIKE'|$eq=='<>'|$eq=='!='){
$x = (string)$w[1];
$y = (string)$w[2];
$y = $zbp->db->EscapeString($y);
$sqlw .= $comma . " $x $eq '$y' ";
}
if($eq=='BETWEEN'){
$b1 = (string)$w[1];
$b2 = (string)$w[2];
$b3 = (string)$w[3];
$sqlw .= $comma . " $b1 BETWEEN '$b2' AND '$b3' ";
}
if($eq=='search'){
$j=count($w);
$sql_search='';
$c='';
for ($i=1; $i <= $j-1-1; $i++) {
$x=(string)$w[$i];
$y=(string)$w[$j-1];
$y=$zbp->db->EscapeString($y);
$y=$w[$j-1];
$sql_search .= $c . " ($x LIKE '%$y%') ";
$c='OR';
}
$sqlw .= $comma . '(' . $sql_search . ')';
}
if($eq=='array'){
$c='';
$sql_array='';
if(!is_array($w[1]))continue;
if(count($w[1])==0)continue;
foreach ($w[1] as $x=>$y) {
$y[1]=$zbp->db->EscapeString($y[1]);
$sql_array .= $c . " $y[0]='$y[1]' ";
$c='OR';
}
$sqlw .= $comma . '(' . $sql_array . ')';
}
if($eq=='custom'){
$sqlw .= $comma . '(' . $w[1] . ')';
}
$comma = 'AND';
}
}
echo $sqlw;//顺便把SQL语句ehco 出来,你们的拼接写得好蛋疼
return $sqlw;
}


1.jpg


注入方法的利用和这个一样 WooYun: Z-Blog的php版前台正则SQL盲注漏洞
,拿sqlmap跑一下就出来了

漏洞证明:

1.jpg

修复方案:

接受的POST都过滤一下

版权声明:转载请注明来源 只发通用型@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2013-09-24 13:38

厂商回复:

非常感谢!!!已着手处理中了。

最新状态:

2013-09-24:2013-09-24:dbsql.php第197行,删除就好了。


漏洞评价:

评论

  1. 2013-09-24 13:01 | X防部 ( 普通白帽子 | Rank:487 漏洞数:137 )

    坐等公开 秒杀某热博客!

  2. 2013-09-24 14:18 | 只发通用型 ( 实习白帽子 | Rank:93 漏洞数:14 | 刷通用型奖金小号)

    return addslashes($sql);即可

  3. 2013-09-27 14:38 | Skull ( 实习白帽子 | Rank:95 漏洞数:33 | 菜鸟一枚。)

    求公开啊。黑阔们,注意啦啊

  4. 2013-09-27 15:59 | 齐迹 ( 核心白帽子 | Rank:784 漏洞数:100 | 一名普通的phper开发者,关注web安全。)

    谁的马甲。。。封了!

  5. 2013-09-27 20:45 | Z-Blog(乌云厂商)

    @齐迹 反正不是我的

  6. 2013-09-27 20:46 | Z-Blog(乌云厂商)

    @Z-Blog 咦我居然用的不是个人帐号

  7. 2013-09-28 02:20 | Mosuan ( 普通白帽子 | Rank:449 漏洞数:175 | 尘封此号,不装逼了,再见孩子们。by Mosua...)

    @Z-Blog 你别搞笑了。。

  8. 2013-09-28 08:58 | X防部 ( 普通白帽子 | Rank:487 漏洞数:137 )

    @Z-Blog 过两天再发补丁包!我先日了某人博客再说 哈哈!

  9. 2013-09-28 11:29 | 只发通用型 ( 实习白帽子 | Rank:93 漏洞数:14 | 刷通用型奖金小号)

    @X防部 PHP版有人用了?

  10. 2015-02-06 01:00 | roker ( 普通白帽子 | Rank:357 漏洞数:108 )

    @只发通用型 怎么没看到 $ ,这个没奖金??