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

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

缺陷编号:wooyun-2014-077638

漏洞标题:芒果云KODExlporer一处本地文件包含(可GETSHELL)

相关厂商:千帆网络工作室

漏洞作者: loopx9

提交时间:2014-09-28 18:40

修复时间:2014-12-27 18:42

公开时间:2014-12-27 18:42

漏洞类型:文件包含

危害等级:中

自评Rank:6

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

LFI一枚.

详细说明:

controller/util.php: 74-98

//语言包加载
function init_lang(){
if (isset($_COOKIE['kod_user_language'])) {
$lang = $_COOKIE['kod_user_language']; //从cookie中取值
}else{ //没有cookie
preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$lang = $matches[1];
switch (substr($lang,0,2)) {
case 'zh':
if ($lang != 'zn-TW'){
$lang = 'zh-CN';
}
break;
case 'en':$lang = 'en';break;
default:$lang = 'en';break;
}
$lang = str_replace('-', '_',$lang);
setcookie('kod_user_language',$lang, time()+3600*24*365);
}

$GLOBALS['language'] = $lang;
define('LANGUAGE_TYPE', $lang);
include(LANGUAGE_PATH.$lang.'/main.php'); //直接包含了,没做过滤
$GLOBALS['L'] = $L;
$GLOBALS['lang'] = $L;
}

init_lang() 在 /config/config.php 中调用.

漏洞证明:

1.png


函数parse_incoming 对GPC传进来的参数都进行了stripslashes,可惜init_lang()是在之前调用,不然就不受GPC限制了。
cookie添加 kod_user_language=../User/demo/home/new.txt%00 ,然后访问
成功利用需要\0截断,因而所需条件: php version <5.3.4, GPC off。
GPC启用时,一些版本的php也能长文件名截断.

修复方案:

过滤。

版权声明:转载请注明来源 loopx9@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-09-28 20:11

厂商回复:

感谢关注与贡献!马上整改,尽快发布新版

最新状态:

暂无