漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-038312
漏洞标题:fluxbb存在PHP本地文件包含漏洞
相关厂商:fluxbb
漏洞作者: Code_Sec
提交时间:2013-09-27 10:44
修复时间:2013-12-26 10:44
公开时间:2013-12-26 10:44
漏洞类型:文件包含
危害等级:中
自评Rank:5
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-09-27: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-12-26: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
很明显的本地包含
详细说明:
文件:install.php
// If we've been passed a default language, use it
$install_lang = isset($_REQUEST['install_lang']) ? pun_trim($_REQUEST['install_lang']) : 'English';
// If such a language pack doesn't exist, or isn't up-to-date enough to translate this page, default to English
if (!file_exists(PUN_ROOT.'lang/'.$install_lang.'/install.php'))
$install_lang = 'English';
require PUN_ROOT.'lang/'.$install_lang.'/install.php';
if (file_exists(PUN_ROOT.'config.php'))
{
// Check to see whether FluxBB is already installed
include PUN_ROOT.'config.php';
// If we have the 1.3-legacy constant defined, define the proper 1.4 constant so we don't get an incorrect "need to install" message
if (defined('FORUM'))
define('PUN', FORUM);
// If PUN is defined, config.php is probably valid and thus the software is installed
if (defined('PUN'))
exit($lang_install['Already installed']);
很明显$install_lang存在本地文件包含漏洞,且安装完后该文件不会主动删除
函数pun_trim:
function pun_trim($str, $charlist = false)
{
return is_string($str) ? utf8_trim($str, $charlist) : '';
}
跟进utf8_trim:
function utf8_trim( $str, $charlist=false)
{
if($charlist === false)
return trim($str);
return utf8_ltrim(utf8_rtrim($str, $charlist), $charlist);
}
最终pun_trim($_REQUEST['install_lang'])变成:
trim($_REQUEST['install_lang'])
所以对于漏洞利用没啥影响
漏洞证明:
修复方案:
最好不修复^_^
版权声明:转载请注明来源 Code_Sec@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝