漏洞概要 关注数(6) 关注此漏洞
缺陷编号: WooYun-2013-38312
漏洞标题: fluxbb存在PHP本地文件包含漏洞
相关厂商: fluxbb
漏洞作者: Code_Sec
提交时间: 2013-09-27 10:44
公开时间: 2013-12-26 10:44
漏洞类型: 文件包含
危害等级: 中
自评Rank: 5
漏洞状态: 未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
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@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值