涉及文件: `/index.php`
``` php
//initialize our variables, set module to login if not logged in
require('includes/application_top.php');
```
在代码处理开始之前会加载 `includes/application_top.php` 进行一些初始化操作。
涉及文件: `/includes/application_top.php` (131-140行)
``` php
// set the language
if (isset($_GET['language'])) {
$_SESSION['language'] = $_GET['language'];
} elseif (!$_SESSION['language']) {
if (defined('DEFAULT_LANGUAGE')) {
$_SESSION['language'] = DEFAULT_LANGUAGE;
} else {
$_SESSION['language'] = 'en_us';
}
}
```
在 131-140 行之间会获取 $_GET['language'] 参数,然后赋值给 $_SESSION['language'],在该文件第 177 行处会拼接 $_SESSION['language'] 参数的值进行文件加载:
``` php
require_once(DIR_FS_MODULES . 'general/language/' . $_SESSION['language'] . '/language.php');
```
在 PHP 5.3.4 之前可以利用 %00 进行截断,因此利用其进行 任意文件包含。
暂无评论