Старый 30.10.2013, 20:12   #1
lolka
 
Регистрация: 02.06.2013
Сообщений: 14
Репутация: 0
По умолчанию smf 2.0.5 && 1.1.18 remote shell upload

Вообщем то обсуждение подробности данной баги потерли здесь =>
https://github.com/SimpleMachines/SMF2.1/issues/701
Опишу, что видел и что затестил на локалке.
Уязвимость скажем мягко говоря не соответствует своему кричащему названию.
Зависимость на уровне smf: В админке должна стоять галочка на => Загрузка аватаров с внешних источников (URL) (по дефолту не стоит).
Зависимость на уровне вебсервера: кривые настройки (файло без расширения отрабатывало как пхп код)
Эксплуатация: регаемся на форуме => профиль => настройка профиля => аватар => Укажите ссылку (URL) на аватар, пишем линк на шелл с произвольный расширением (ex. http://test.com/lol.lol) => жмякаем изменить профайл. В ответ видим
Цитата:
При попытке сохранения настроек возникла следующая ошибка::Ваш аватар слишком большой, либо не является графическим файлом.
Идем по адресу /attachments/avatar_tmp_айдивашегоюзера => профит
Уязвимый файл /Sources/Profile-Modify.php
PHP код:
function profileSaveAvatarData(&$value)
{
        global 
$modSettings$sourcedir$smcFunc$profile_vars$cur_profile$context;

        
$memID $context['id_member'];
        if (empty(
$memID) && !empty($context['password_auth_failed']))
                return 
false;

        require_once(
$sourcedir '/ManageAttachments.php');

        
// We need to know where we're going to be putting it..
        
if (!empty($modSettings['custom_avatar_enabled']))
        {
                
$uploadDir $modSettings['custom_avatar_dir'];
                
$id_folder 1;
        }
        elseif (!empty(
$modSettings['currentAttachmentUploadDir']))
        {
                if (!
is_array($modSettings['attachmentUploadDir']))
                        
$modSettings['attachmentUploadDir'] = unserialize($modSettings['attachmentUploadDir']);

                
// Just use the current path for temp files.
                
$uploadDir $modSettings['attachmentUploadDir'][$modSettings['currentAttachmentUploadDir']];
                
$id_folder $modSettings['currentAttachmentUploadDir'];
        }
        else
        {
                
$uploadDir $modSettings['attachmentUploadDir'];
                
$id_folder 1;
        }

        
$downloadedExternalAvatar false;
        if (
$value == 'external' && allowedTo('profile_remote_avatar') && strtolower(substr($_POST['userpicpersonal'], 07)) == 'http://' && strlen($_POST['userpicpersonal']) > && !empty($modSettings['avatar_download_external']))
        {
                if (!
is_writable($uploadDir))
                        
fatal_lang_error('attachments_no_write''critical');

                require_once(
$sourcedir '/Subs-Package.php');

                
$url parse_url($_POST['userpicpersonal']);
                
$contents fetch_web_data('http://' $url['host'] . (empty($url['port']) ? '' ':' $url['port']) . str_replace(' ''%20'trim($url['path'])));

                if (
$contents != false && $tmpAvatar fopen($uploadDir '/avatar_tmp_' $memID'wb'))
                {
                        
fwrite($tmpAvatar$contents);
                        
fclose($tmpAvatar);

                        
$downloadedExternalAvatar true;
                        
$_FILES['attachment']['tmp_name'] = $uploadDir '/avatar_tmp_' $memID;
                } 
p.s. bitcointalk именно этим "нуллдей" способом и поимели
lolka вне форума   Ответить с цитированием
Старый 31.10.2013, 16:45   #2
Лаврушкин
 
Регистрация: 05.07.2010
Сообщений: 27
Репутация: 15
По умолчанию

Цитата:
Сообщение от lolka Посмотреть сообщение
Зависимость на уровне вебсервера: кривые настройки (файло без расширения отрабатывало как пхп код)
А подробнее можно?
Лаврушкин вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot