http://milw0rm.com/exploits/7011
СМФ имеет функцию изменения тем,так вот это уязвимость заключается в изменении настроек тем,а затем присвоения значение $ параметрам конфигурации,так что вы можете изменять настройки смф
Итак:
Sources/Themes.php
249 в index.php:
Код:
'jsoption' => array('Themes.php', 'SetJavaScript')
1185 в Sources/Themes.php
Код:
function SetJavaScript()
Затем эта функция выделяет темы в таблице переменных, которые вы послали
1205 в Sources/Themes.php
Код:
db_query("
REPLACE INTO {$db_prefix}themes
(ID_THEME, ID_MEMBER, variable, value)
VALUES ($settings[theme_id], $ID_MEMBER, SUBSTRING('$_GET[var]', 1, 255), SUBSTRING('" . (is_array($_GET['val']) ? implode(',', $_GET['val']) : $_GET['val']) . "', 1, 65534))", __FILE__, __LINE__);
Зaтем считывает одну и ту же инфу тем же методом:
Код:
$request = db_query("
SELECT ID_THEME, variable, value
FROM {$db_prefix}themes
WHERE variable IN ('name', 'theme_url', 'theme_dir', 'images_url')" . (empty($modSettings['theme_default']) && !allowedTo('admin_forum') ? "
AND ID_THEME IN ('$knownThemes')
AND ID_THEME != 1" : '') . "
AND ID_THEME != 0
LIMIT " . count(explode(',', $modSettings['knownThemes'])) * 8, __FILE__, __LINE__);
861 в Sources/Themes.php
Код:
while ($row = mysql_fetch_assoc($request))
Параметры в $context['available_themes'][TEMA]
869 в Sources/Themes.php
Код:
$context['available_themes'][$row['ID_THEME']][$row['variable']] = $row['value'];
Затем принимает информацию по пунктам:
904 в Sources/Themes.php
Код:
foreach ($context['available_themes'] as $ID_THEME => $theme_data)
И в настройки перменные принимают значения,который мы только что изменили
910 в Sources/Themes.php
Код:
$settings = $theme_data;
И в конце концов, в том числе файл, использует значение $ theme_dir
Код:
include($settings['theme_dir'] . '/languages/Settings.' . $user_info['language'] . '.php')