#!/usr/bin/perl # # Name: Pagina 8 # Version: 2.2 # Purpose: Avoid SPAM attacks creating false pages under a web site # Author: J. Alejandro Ceballos Z. # Date: 2005 10 29 # Receives: - # Results: Infinite false pages # ------------------------------ # Deteccion de errores / Error detect # ------------------------------ # # Por favor descomente la siguiente con un '#' si desea deteccion de errores (requiere CGI.pm) # Plase uncomment the following line with a '#' if you wants error detection (requires CGI.pm) # use CGI::Carp qw(fatalsToBrowser); # # ----------------------------------- [ LEAME / README ] # # ------------------------------ # Derechos de copia / Copyright # ------------------------------ # # J. ALEJANDRO CEBALLOS Z. UNDER GNU RIGHTS # # ------------------------------ # Licencia y costo / Licence and cost # ------------------------------ # # ESTE SOFTWARE ES GRATUITO PARA USO PERSONAL # EN CASO DE SITIOS COMERCIALES, SE AGRADECERA EL DEPOSITO DE $25 USD EN LA CUENTA: # # THIS SOFTWARE IS FREE FOR PERSONAL USE # IF USED FOR COMMERCIAL SITES, PLEASE DEPOSIT $25 USD ON THE FOLLOWING ACCOUNT: # # # BANORTE # Cuenta SUMA: 0159841851 # Clabe: 072 320 00159841851 0 # A nombre de: José Alejandro Ceballos Zavala # Sucursal: 170 Guadalajara, Jal. # # ------------------------------ # Aviso de responsabilidad / Disclaimer # ------------------------------ # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # ------------------------------ # Requisitos / Requirements # ------------------------------ # # PERL # CGI::Carp.pm (opcional / optional) # # # ------------------------------ # Configurar / Configure # ------------------------------ # # 1. Si su dominio tiene cuenta "catch-all" activada, por favor asigne el valor # de 1 a $bool_CATCH_ALL_ACTIVE o 0 en caso contrario # 2. Copie este archivo a su directorio cgi-bin y renombrelo como index.cgi # 3. Establezca permisos de ejecución para dicho archivo (755) # 4. Cree un enlace web a este desde la página inicial de su sitio web. # Esto será algo como: # . # # # 1. If your domain has catch-all account activated, please set $bool_CATCH_ALL_ACTIVE # equal to 1 # 2. Copy this file under your cgi-bin directory and rename it as index.cgi # 3. Set execution permitions to all (755). # 4. Make a small link to it from your initial web page. It may look lice: # . # # # ----------------------------------- [ constantes ] # $bool_CATCH_ALL_ACTIVE = 1; @arr_SIL = ('ben','ble','blen','cha ','der','dis','dua','fue','can','cuer','lea','llo', 'nor','ren','ris','tal','yo','cial','gia','car','cla','rac','sar','tros', 'xi','dia','fen','fuer','oi','pue','tras','ya','bar','bien','gri','gru', 'guar','gus','ci','lu','lus','mien','mu','per','pu','tam','zar','bas','sen', 'xac','zam','zen','gun','cos','cre','cu','lla','pea','pi','sis','sus','xun', 'ber','bier','par','ria','tar','xie','ja','mun','pues','rro','du','fe', 'is','com','mar','or','gi','gi','nal','nal','nos','nos','ses','ses','tes', 'tes','tre','tre','re','re','das','das','ten','ten','ron','ron','ecs','ecs', 'ga','ga','gu','gu','os','os','tan','tan','tas','tas','xu','xu','ac','ac', 'mas','mas','rra','rra','for','for','im','im','le','le','res','res','ter', 'ter','be','be','ran','ran','tro','tro','bo','bo','les','les','les','an', 'an','an','tu','tu','tu','bre','bre','bre','des','des','des','go','go','go', 'gra','gra','gra','mos','mos','mos','za','za','za','ge','ge','ge','je', 'je','je','jed','jed','jed','su','su','su','dad','dad','dad','jo','jo','jo', 'lo','lo','lo','fi','fi','fi','fi','ne','ne','ne','ne','al','al','al','al', 'bi','bi','bi','bi','ze','ze','ze','ze','men','men','men','men','tos','tos', 'tos','tos','un','un','un','un','pro','pro','pro','pro','tra','tra','tra', 'tra','xa','xa','xa','xa','me','me','me','me','xe','xe','xe','xe','xe','nes', 'nes','nes','nes','nes','den','den','den','den','den','sa','sa','sa','sa', 'sa','pre','pre','pre','pre','pre','mi','mi','mi','mi','mi','cia','cia', 'cia','cia','cia','cia','ba','ba','ba','ba','ba','ba','del','del','del', 'del','del','del','por','por','por','por','por','por','mo','mo','mo','mo', 'mo','mo','las','las','las','las','las','las','po','po','po','po','po', 'po','ri','ri','ri','ri','ri','ri','ri','da','da','da','da','da','da','da', 'rre','rre','rre','rre','rre','rre','rre','so','so','so','so','so','so', 'so','pe','pe','pe','pe','pe','pe','pe','li','li','li','li','li','li','li', 'no','no','no','no','no','no','no','dos','dos','dos','dos','dos','dos', 'dos','ro','ro','ro','ro','ro','ro','ro','in','in','in','in','in','in', 'in','in','di','di','di','di','di','di','di','di','ma','ma','ma','ma','ma', 'ma','ma','ma','los','los','los','los','los','los','los','los','los','los', 'ca','ca','ca','ca','ca','ca','ca','ca','ca','ca','na','na','na','na','na', 'na','na','na','na','na','co','co','co','co','co','co','co','co','co','co', 'ni','ni','ni','ni','ni','ni','ni','ni','ni','ni','e','e','e','e','e','e', 'e','e','e','e','e','to','to','to','to','to','to','to','to','to','to','to', 'si','si','si','si','si','si','si','si','si','si','si','ti','ti','ti','ti', 'ti','ti','ti','ti','ti','ti','ti','ti','ra','ra','ra','ra','ra','ra','ra', 'ra','ra','ra','ra','ra','on','on','on','on','on','on','on','on','on','on', 'on','on','pa','pa','pa','pa','pa','pa','pa','pa','pa','pa','pa','pa','pa', 'en','en','en','en','en','en','en','en','en','en','en','en','en','en','ce', 'ce','ce','ce','ce','ce','ce','ce','ce','ce','ce','ce','ce','ce','con','con', 'con','con','con','con','con','con','con','con','con','con','con','con', 'con','el','el','el','el','el','el','el','el','el','el','el','el','el','el', 'el','es','es','es','es','es','es','es','es','es','es','es','es','es','es', 'es','es','te','te','te','te','te','te','te','te','te','te','te','te','te', 'te','te','te','do','do','do','do','do','do','do','do','do','do','do','do', 'do','do','do','do','a','a','a','a','a','a','a','a','a','a','a','a','a','a', 'a','a','a','se','se','se','se','se','se','se','se','se','se','se','se','se', 'se','se','se','se','u','u','u','u','u','u','u','u','u','u','u','u','u','u', 'u','u','u','u','ta','ta','ta','ta','ta','ta','ta','ta','ta','ta','ta','ta', 'ta','ta','ta','ta','ta','ta','ta','zi','zi','zi','zi','zi','zi','zi','zi', 'zi','zi','zi','zi','zi','zi','zi','zi','zi','zi','zi','zi','i','i','i','i', 'i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','o','o','o', 'o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','o','la', 'la','la','la','la','la','la','la','la','la','la','la','la','la','la','la', 'la','la','la','la','la','la','la','la','la','la','la','la','de','de','de', 'de','de','de','de','de','de','de','de','de','de','de','de','de','de','de', 'de','de','de','de','de','de','de','de','de','de','de','de','de','de','de', 'de','de','de','de','de','de','de','de','de','de','de','de','de','de','de'); $int_SILS = $#arr_SIL; @arr_TLD = ('com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'com', 'org', 'org', 'org', 'org', 'org', 'org', 'org', 'org', 'net', 'net', 'net', 'net', 'net', 'net', 'net', 'net', 'edu', 'info', 'info', 'gov', 'mil', 'biz', 'biz', 'pro', 'museum', 'name', 'aereo', 'coorp', 'int', 'ad', 'ae', 'af', 'ag', 'ai', 'al', 'am', 'an', 'ao', 'aq', 'ar', 'org.ar', 'com.ar', 'int.ar', 'net.ar', 'as', 'at', 'au', 'aw', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj', 'bm', 'bn', 'bo', 'com.bo', 'edu.bo', 'gov.bo', 'org.bo', 'net.bo', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cc', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'cr', 'co.cr', 'or.cr', 'fi.cr', 'ac.cr', 'go.cr', 'sa.cr', 'cu', 'cv', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'ee', 'eg', 'eh', 'er', 'es', 'et', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'fx', 'ga', 'gb', 'gd', 'ge', 'gf', 'gh', 'gi', 'gl', 'gm', 'gn', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'in', 'io', 'iq', 'ir', 'is', 'it', 'jm', 'jo', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'mg', 'mh', 'mk', 'ml', 'mm', 'mn', 'mo', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'mv', 'mw', 'mx', 'edu.mx', 'com.mx', 'net.mx', 'org.mx', 'my', 'mz', 'na', 'nc', 'ne', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'pt', 'pw', 'py', 'com.py', 'net.py', 'edu.py', 'qa', 're', 'ro', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'st', 'su', 'sv', 'sy', 'sz', 'tc', 'td', 'tf', 'tg', 'th', 'tj', 'tk', 'tm', 'tn', 'to', 'tp', 'tr', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'uk', 'um', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'ye', 'yt', 'yu', 'za', 'zm', 'zr', 'zw', 'net.mx','org.mx','com.mx'); $int_TLDS = $#arr_TLD; # # ----------------------------------- [ datos generados ] # srand($$); # palabras @arr_words = ('a','and','he','I','in','is','it','of','that','the','to','was','a','and', 'he','I','in','is','it','of','that','the','to','was','all','are','as','at', 'be','','but','for','had','have','him','his','not','on','one','said', 'so','they','we','with','you','a','and','he','I','in','is','it','of', 'that','the','to','was','a','and','he','I','in','is','it','of','that', 'the','to','was','all','are','as','at','be','','but','for','had','have', 'him','his','not','on','one','said','','so','they','we','with','you', 'about','an','back','been','before','big','by','call','came','can','come', 'could','did','do','down','','first','from','get','go','has','her','here', 'if','into','just','like','little','look','made','make','more','me','much', 'must','my','no','new','now','off','old','only','or','our','other','out', 'over','right','she','see','some','their','them','then','there','this', 'two','up','want','well','went','were','what','when','where','which','who', 'will','your','a','and','he','I','in','is','it','of','that','the','to','was','a','and', 'he','I','in','is','it','of','that','the','to','was','all','are','as','at', 'be','','but','for','had','have','him','his','not','on','one','said', 'so','they','we','with','you','a','and','he','I','in','is','it','of', 'that','the','to','was','a','and','he','I','in','is','it','of','that', 'the','to','was','all','are','as','at','be','','but','for','had','have', 'him','his','not','on','one','said','','so','they','we','with','you', 'about','an','back','been','before','big','by','call','came','can','come', 'could','did','do','down','','first','from','get','go','has','her','here', 'if','into','just','like','little','look','made','make','more','me','much', 'must','my','no','new','now','off','old','only','or','our','other','out', 'over','right','she','see','some','their','them','then','there','this', 'two','up','want','well','went','were','what','when','where','which','who', 'will','your','. ',', ','; ',':','-',' & ','*','+','? ',', ',', ',', ',', ', 'a','acá','ahí','ajena','ajenas','ajeno','ajenos','al','algo','algún','alguna', 'algunas','alguno','algunos','allá','alli','allí','ambos','ampleamos','ante', 'antes','aquel','aquella','aquellas','aquello','aquellos','aqui','aquí','arriba', 'asi','atras','aun','aunque','bajo','bastante','bien','cabe','cada','casi','cierta', 'ciertas','cierto','ciertos','como','cómo','con','conmigo','conseguimos', 'conseguir','consigo','consigue','consiguen','consigues','contigo','contra', 'cual','cuales','cualquier','cualquiera','cualquieras','cuan','cuán','cuando', 'cuanta','cuánta','cuantas','cuántas','cuanto','cuánto','cuantos','cuántos','de', 'dejar','del','demás','demas','demasiada','demasiadas','demasiado','demasiados', 'dentro','desde','donde','dos','el','él','ella','ellas','ello','ellos','empleais', 'emplean','emplear','empleas','empleo','en','encima','entonces','entre','era', 'eramos','eran','eras','eres','es','esa','esas','ese','eso','esos','esta','estaba', 'estado','estais','estamos','estan','estar','estas','este','esto','estos','estoy', 'etc','fin','fue','fueron','fui','fuimos','gueno','ha','hace','haceis','hacemos', 'hacen','hacer','haces','hacia','hago','hasta','incluso','intenta','intentais', 'intentamos','intentan','intentar','intentas','intento','ir','jamás','junto', 'juntos','la','largo','las','lo','los','mas','más','me','menos','mi','mía','mia', 'mias','mientras','mio','mío','mios','mis','misma','mismas','mismo','mismos', 'modo','mucha','muchas','muchísima','muchísimas','muchísimo','muchísimos','mucho', 'muchos','muy','nada','ni','ningun','ninguna','ningunas','ninguno','ningunos','no', 'nos','nosotras','nosotros','nuestra','nuestras','nuestro','nuestros','nunca','os', 'otra','otras','otro','otros','para','parecer','pero','poca','pocas','poco','pocos', 'podeis','podemos','poder','podria','podriais','podriamos','podrian','podrias', 'por','por qué','porque','primero','primero desde','puede','pueden','puedo','pues', 'que','qué','querer','quien','quién','quienes','quienesquiera','quienquiera','quiza', 'quizas','sabe','sabeis','sabemos','saben','saber','sabes','se','segun','ser', 'si','sí','siempre','siendo','sin','sín','sino','so','sobre','sois','solamente', 'solo','somos','soy','sr','sra','sres','sta','su','sus','suya','suyas','suyo', 'suyos','tal','tales','también','tambien','tampoco','tan','tanta','tantas','tanto', 'tantos','te','teneis','tenemos','tener','tengo','ti','tiempo','tiene','tienen', 'toda','todas','todo','todos','tomar','trabaja','trabajais','trabajamos','trabajan', 'trabajar','trabajas','trabajo','tras','tú','tu','tus','tuya','tuyo','tuyos','ultimo', 'un','una','unas','uno','unos','usa','usais','usamos','usan','usar','usas','uso', 'usted','ustedes','va','vais','valor','vamos','van','varias','varios','vaya','verdad', 'verdadera','vosotras','vosotros','voy','vuestra','vuestras','vuestro','vuestros', 'y','ya','yo'); # palabras adicionales for ($i=0; $i<(100+int(rand(250))); $i++) { $str_word = ''; $j = 1; foreach(int (rand(10))) { /9|8/ and do { $j=2; last; }; /7|6|7/ and do { $j=3; last; }; /4|3/ and do { $j=4; last; }; /2/ and do { $j=5; last; }; /1/ and do { $j=6; last; }; } for (;$j>0;$j--) { $str_word .= $arr_SIL[int (rand $int_SILS)]; } push (@arr_words,$str_word); } $int_words = $#arr_words; $bool_continue = 0; # # ----------------------------------- [ subrutinas ] # sub CreateColor { return (sprintf("#%02x%02x%02x", rand(85)*3, rand(85)*3, rand(85)*3)); } sub CreateTags { foreach (rand(20)) { /11/ && do { return ("

","

"); last;}; /12/ && do { return ("
","
"); last;}; /13/ && do { return (""); last;}; /14/ && do { return ("
  1. ","
"); last;}; /15/ && do { return ("
","
"); last;}; /16/ && do { return ("",""); last;}; /17/ && do { return ("",""); last;}; /18/ && do { return ("",""); last;}; /19/ && do { return (" ",""); last;}; return ("",""); } } sub CreateEmail { my $str_email = ((! $bool_CATCH_ALL_ACTIVE) && (3$str_email "; last; }; /1/ && do { $str_email = "".$arr_words[int rand($int_words)]." "; last; }; return $str_email; } return $str_email; } sub Createlink { @str_class = ('php','html','htm','asp','jpg','gif','png','cgi','pl','exe','dll'); my $str_link; foreach (rand(9)) { /8/ && do { $str_link = 'http://www.' . $arr_words[int rand($int_words)] . '.' . $arr_TLD[rand($#arr_TLD)]; last;}; /7/ && do { $str_link = 'http://www.' . $arr_words[int rand($int_words)] . '.' . $arr_TLD[rand($#arr_TLD)] . '/' . $arr_words[int rand($int_words)] . '.' . $str_class[int rand($#str_class)]; last;}; /6/ && do { $str_link = 'http://www.' . $arr_words[int rand($int_words)] . '.' . $arr_TLD[rand($#arr_TLD)] . '/index.'. $str_class[int rand($#str_class)] . '?' . $arr_words[int rand($int_words)] . '=' . $arr_words[int rand($int_words)]; last;}; /5|4/ && do { $str_link = $ENV{SCRIPT_NAME}; $bool_continue = 1; last;}; /3|2/ && do { $str_link = '?' . $arr_words[int rand($int_words)] . '=' . $arr_words[int rand($int_words)]; $bool_continue = 1; last;}; $str_link = '?' . $arr_words[int rand($int_words)]; $bool_continue = 1; } return (rand(10) < 7) ? "" . $arr_words[int rand($int_words)] . " " : "" . $str_link . " "; } # # ----------------------------------- [ cuerpo del programa ] # # Genera pagina print "Content-Type: text/html\n\n" . ""; # genera titulo for (0..rand(5)) { print $arr_words[int rand($int_words)]. " "; } print "\n\n\n" . "\n"; # crea codigo $i = rand(20) + 20; for (0..$i) { for (0..rand(15)) { print $arr_words[int rand($int_words)]. " "; } ($str_inittag,$str_endtag) = &CreateTags; print "\n".$str_inittag; for (0..rand(5)) { print $arr_words[int rand($int_words)]. " "; } if (3' . $arr_words[int rand($int_words)] . ' '; } for (0..rand(6)) { print $arr_words[int rand($int_words)]. " "; } } # continua print ""; # exit 0;