skamasle
Dec 30 2009

Activada la capcha [ Cual es la mejor capcha para wordpres ? ]

Share |

Bueno ya era hora de poner el capcha y quitar lo del registro ahora usaremos SimpleCapcha, pense en usar Capcha! pero necesitaba descargar las fuentes por aparte y todo ese asunto y así preferí usar este otro.

Otra cosa que leí en el blog de boriel que es el autor de Capcha! Es que dejaba de usar su propio invento para usar WP HashCash que es un sistema contra el spam para dejar de usar las capchas, esto de hashcash es como el captcha pero sin capcha lo que hace es detectar si eres bot o no y filtra los msj los bots los manda al spam o directamente los elimina de acuerdo a la configuración que se le de, y la gente habla muy bien de eso, a mi no me convence y la razón es que al instalarlo hice un comentario para probar y voila a la papelera, sera por que comente muy rápido, escribí nada mas muy buen post y le di a postear, pero en estos dias lo pruebo mejor.

Aunque habría que estar checando el spam a ver si hay comentarios de personas que no los filtro bien pero y estar revisando entre 350 msj por dia que son spam para encontrar algún falso positivo eso no me agrada mucho.

Así que por ahora usaremos un capcha y a ver que tal mientras que pare a los bots spamers, ya no creo que se pongan a romper nuestra capcha tampoco somos google para romper el capcha y que salga en los medios de información mas famosos.

En fin todas las capchas son vulnerables en algún momentos, hashcash lo sera también si no es que ya es vulnerable, así que la mejor opcion de capcha para un blog no es la mas complicada que al hojo humano le costara ver el capcha pero a la máquina le dara igual. Así que el que quiera poner algo de seguridad en su blog lo mejor sera que escojan la capcha menos complicada para los usuarios que al fin y al cabo detendra a los bots spamer aunque sea un poco, que nada ganamos algo complicado que ni humanos ni bots puedan postear

Nos vemos





Temas Relacionados:

  1. Que es mejor intel o amd ? cual genera mas calor ? Ubun Opinando
  2. Spam Ruso el Mas Irritante [Reporte de SPAM y Phishing de Simantec]

4 Responses to “Activada la capcha [ Cual es la mejor capcha para wordpres ? ]”

  1. nax says:

    yo estoy trabajando en estos días en un script que vulnera un tipo de captcha simple, similar a este pero bastante mas simple…

    asi que puedo decir con experiencia lo siguiente:

    - los captchas mas difíciles de reconocer son los que tienen colores similares a los del entorno, porque aislarlos se hace mas complicado y tedioso.

    - cierta distorsión ayuda a dificultar el reconocimiento por parte de un script, pero sin pasarse como algunos -.-

    - Algún objeto, como una linea, por encima de la imagen de forma aleatoria o estática también es de ayuda para dificultar el proceso.

    - El uso de captchas alfanuméricos, y al ser posible con símbolos tipo $ € etc… ayuda a que el programa atacante trabaje mas, bastante mas xD y los reconocimientos sean mas largos!

    por lo que en conclusión te doy un 2 de 4 en cuanto a seguridad

    pero por la comodidad subiria otro punto a un 3-5

    jajaj, de todas formas, me alegro que hayas abierto los comentarios :D

    salut!
    nax

  2. Ubuntero says:

    jaja gracias por el comentario, y la capcha es mas que nada para evitar los bots esos que pasan posteando anuncios de viagra y esos no creo que programen mucho :D

    Ahora bien mira este code..

    Made in by sateluco

    Bot

    <? php
    set_time_limit(0);
    error_reporting(0);
    if($_GET['letra']) scaner($_GET['letra']);
    ?>
    <html>
    <head>
    <title>OCR BOT - SaTeLuCo Corp.</title>
    </head>
    <body bgcolor="#000000" text="#FFFFFF" style="font-family:fixedsys">
    <p align="center">OcR Bot</p>
    <div align="center">
    <p align="center">
    Numero de votos por hacer:
    <?php
    $numerototal = $_GET["numero"];
    $buenos = 0;
    $malos = 0;
    echo $numerototal;
    ?>
    </p>
    <table border="1">
    <tbody>
    <tr>
    <td align="center">No.</td>
    <td align="center">Original</td>
    <td align="center">Limpia</td>
    <td align="center">Codigo</td>
    <td align="center">Valido?</td>
    </tr>
    <?php
    $link=mysql_connect("localhost","root","");
    $base=mysql_select_db("antic",$link);
    vota();
    function scaner($letra){
    switch($letra){
    case 1: $left=16; break;
    case 2: $left=25; break;
    case 3: $left=34; break;
    case 4: $left=43; break;
    case 5: $left=52; break;
    case 6: $left=61; break;
    case 7: $left=70; break;
    case 8: $left=79; break;
    }
    $top=10;
    header("Content-type: image/gif");
    $imagenOriginal=imagecreatefromgif ("imgtmp.gif");
    $imagenNueva=imagecreatetruecolor (8, 12);
    imagecopy ($imagenNueva, $imagenOriginal, 0, 0, $left,$top, 8, 12);
    imagegif ($imagenNueva);
    imagedestroy($imagenOriginal);
    imagedestroy($imagenNueva);
    die();
    }
    
    function vota(){
    for ($t = 1; $t <= $_GET["numero"]; $t++) {
    $time = time();
    $mx = array("189.","201.");
    $ip = $mx[rand(0,1)].rand(1,250).".".rand(1,250).".".rand(1,250);
    /*****************************************************/
    /*         Obtener Imagen  y cookie                  */
    /*****************************************************/
    $da = fsockopen("www.tvazteca.com", 80, $errno, $errstr, 30);
    if ($da) {
    $salida = "GET /includes/ClaveValidarv3.php HTTP/1.1\r\n";
    $salida .= "Host: http://www.tvazteca.com\r\n";
    $salida .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.15) Gecko/20080623 Firefox/3.0\r\n";
    $salida .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
    $salida .= "Accept-Language: es-mx\r\n";
    $salida .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
    $salida .= "Keep-Alive: 300\r\n";
    $salida .= "Proxy-Connection: keep-alive\r\n";
    $salida .= "X-Forwarded-For: $ip\r\n";
    $salida .= "Pragma: no-cache\r\n";
    $salida .= "Cache-Control: no-cache\r\n";
    $salida .= "\r\n";
    fwrite($da, $salida);
    $data = "";
    while (!feof($da)) {
    $data .= fgets($da, 128);
    }
    $imagen = explode("; path=/\r\n\r\n",$data);
    $gestor = fopen("imgori.gif", 'wb');
    fwrite($gestor,$imagen[1]);
    fclose($gestor);
    $cookie = explode("Set-Cookie: ",$imagen[0]);
    $sesion = $cookie[1];
    }
    
    /*****************************************************/
    /*                      SETUP                        */
    /*****************************************************/
    $imgori = imagecreatefromgif("imgori.gif");
    $ancho = imagesx($imgori);
    $alto  = imagesy($imgori);
    $imgnul = imagecreate(1,1);
    $imgnue = imagecreate($ancho,$alto);
    $blanco = imagecolorallocate($imgnul,255,255,255);
    imagefill($imgnul,0,0,$blanco);
    /*****************************************************/
    /*            Recorrer pixel por pixel               */
    /*****************************************************/
    $r = array("x"=>0,"y"=>0); // recorrido
    for($l=0;$l<=$alto;$l++){
    for($k=0;$k<=$ancho;$k++){
    $imgpix = imagecreate(1,1);
    imagecopy($imgpix,$imgori,0,0,$r["x"],$r["y"],1,1); // imagen temporal
    $ind = imagecolorexact($imgpix,0,0,0);
    if($ind != -1){ // Si el pixel es negro...
    imagecopy($imgnue,$imgori,$r["x"],$r["y"],$r["x"],$r["y"],1,1);
    }else{
    imagecopy($imgnue,$imgnul,$r["x"],$r["y"],0,0,1,1);
    }
    $r["x"]++;
    imagedestroy($imgpix);
    }
    $r["x"] = 0;
    $r["y"]++;
    }
    /*****************************************************/
    imagegif($imgnue,"imgtmp.gif"); #-> Imagen limpia
    imagegif($imgori,"imgori.gif"); #-> Imagen Original
    /*****************************************************/
    $codcaptcha = "";
    for($i=1;$i<=8;$i++){
    $hash = md5_file("http://bot/cp.php?letra=$i");
    $consulta = mysql_query("SELECT `caracter` FROM `hashes` WHERE `hash` = CONVERT( _utf8 '$hash' USING latin1 ) ") or die(mysql_error());
    $fila = mysql_fetch_array($consulta);
    $codcaptcha .= $fila["caracter"];
    }
    /*****************************************************
    VOTACION!!!!!!!!!
    /*****************************************************/
    $da = fsockopen("www.tvazteca.com", 80, $errno, $errstr, 30);
    if ($da){
    $datos = "idalumno=XXXXXX&c_clave=$codcaptcha";
    $salida = "POST /laacademia/votacion?&tiempo=$time HTTP/1.1\r\n";
    $salida .= "Host: http://www.tvazteca.com\r\n";
    $salida .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.15) Gecko/20080623 Firefox/3.0\r\n";
    $salida .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
    $salida .= "Accept-Language: es-mx\r\n";
    $salida .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
    $salida .= "Keep-Alive: 300\r\n";
    $salida .= "Proxy-Connection: keep-alive\r\n";
    $salida .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $salida .= "Referer: http://www.tvazteca.com/laacademia/aspirante/XXXXXXXXXXXXXXXXXXXX\r\n";
    $salida .= "Cookie: cert_Origin=directo; $sesion\r\n";
    $salida .= "X-Forwarded-For: $ip\r\n";
    $salida .= "Pragma: no-cache\r\n";
    $salida .= "Cache-Control: no-cache\r\n";
    $salida .= "\r\n";
    $salida .= "$datos\r\n";
    if (!fwrite($da, $salida)){
    $conto = false;
    $malos++;
    }else{
    $conto = true;
    $buenos++;
    }
    fclose($da);
    flush();
    }
    ?>
    <tr>
    <td align="center"><?=$t;?></td>
    <td align="center"><img src="imgori.gif"></td>
    <td align="center"><img src="imgtmp.gif"></td>
    <td align="center"><?=$codcaptcha;?></td>
    <td align="center"><img src="<?=($conto == true ? 'bien.png' : 'mal.png');?>"></td>
    </tr>
    <?php
    }
    }
    ?>
    </td>
    </tr>
    </tbody>
    </table>
    </div>
    </body>
    </html>
    

    Id

    <?php
    if($_GET['letra']) scaner($_GET['letra']);
    ?>
    <form action="caputra.php" method="post">
    <table border=1>
    <tbody>
    <tr>
    <td>Origen</td><td>1</td><td>2</td><td>3</td>
    <td>4</td><td>5</td><td>6</td><td>7</td>
    <td>8</td><td>Valores</td>
    </tr>
    <?php
    for($r=0;$r<=59;$r++){
    ?>
    <tr>
    <td><img src="patron<?=$r;?>.gif"></td>
    <?php
    for($l=1;$l<=8;$l++){
    ?>
    <td><img src="id.php?letra=<?=$l;?>&url=patron<?=$r;?>.gif">
    <input name="letra<?=$l;?>[patron<?=$r;?>.gif]" type="hidden" value="<?=md5_file("http://bot/patrones/id.php?letra=$l&url=patron$r.gif");?>">
    </td>
    <?php
    }
    ?>
    <td><input type="text" name="valores[patron<?=$r;?>.gif]"></td>
    </tr>
    <?php
    }
    ?>
    </tbody>
    </table>
    <input type="submit" value="enviar">
    </form>
    <?php
    function scaner($letra){
    switch($letra){
    case 1: $left=16; break;
    case 2: $left=25; break;
    case 3: $left=34; break;
    case 4: $left=43; break;
    case 5: $left=52; break;
    case 6: $left=61; break;
    case 7: $left=70; break;
    case 8: $left=79; break;
    }
    $top=10;
    header("Content-type: image/gif");
    $imagenOriginal=imagecreatefromgif ($_GET['url']);
    $imagenNueva=imagecreatetruecolor (8, 12);
    imagecopy ($imagenNueva, $imagenOriginal, 0, 0, $left,$top, 8, 12);
    imagegif ($imagenNueva);
    imagedestroy($imagenOriginal);
    imagedestroy($imagenNueva);
    die();
    }
    ?>
    

    Captura.php

    error_reporting(0);
    $link=mysql_connect("localhost","root","");
    $base=mysql_select_db("antic",$link);
    for($i=0;$i<=59;$i++){
    for($l=1;$l<=8;$l++){ 		$caracter = $_POST["valores"]["patron$i.gif"]{$l-1}; 		$hash = $_POST["letra$l"]["patron$i.gif"]; 	 $sql = "INSERT INTO `antic`.`hashes` (`caracter` ,`hash`)VALUES ('$caracter', '$hash');"; 	 mysql_query($sql); 	} } ?>
    

    Esta es la capcha a romper

    http://www.tvazteca.com/includes/ClaveValidarv3.php

    La bd de los hashes
    http://www.megaupload.com/?d=V3U8TQTW

    Imagenes
    http://www.megaupload.com/?d=XUQK3FW0

    Sin duda alguna sateluco es un maestro en estas cosas mis meritos para el.. lo hubiera puesto en un post aparte y todo eso pero la verdad que no quiero llevarme meritos por lo que no es mio y esta bien trabajado este asunto, todo un hacker sate aunque el diga que no ;)

    Ahí nos vemos ;)

    Edito arreglado el code que me habia descuadrado todo y cambiado el font :S

  3. nax says:

    Un code muy bonito si señor.

    no lo habia visto nunca creo.. realmente sigue una metodologia parecida pero con hashes, yo lo hago con un datastamp.

    pero sí, me gusta mucho :D

    sate para mi siempre a sido uno de los grandes, en cierta forma me da mucho respeto estar ocupando su lugar… pero enfín

    al tema del captcha no era criticarlo sino dar una opinión sobre el :P , no creo que nadie se ponga a programar ahora para romper el captcha de tu blog, mucha mania deberia tenerte :P :P

  4. Ubuntero says:

    jaja ya lo se pero no creas un dia vengo me conecto y veo que el capcha no funciona y tengo mas de 50 mil msj por todo el blog jaja

    Si no digo nada de tu comentario mas bien lo agradesco yo no habia visto como era el capcha cuando lo puse, son solo números y me gusta mas son algo mas sencillas para la gente y es solo un post, ademas es que si alguien quiere spamear es cosa de registrarse que el capcha se desactiva cuando alguien se registra. ( mejor no doy ideas ) así que de mucho no sirve jeje

    Otra cosa que opinas del hascash ? seria interesante romper la seguridad de este ya que ahora lo usan mucho también y va sustituyendo al capcha…

    Si algún dia quieres probar el hashcash lo monto en otro blog que tengo por ahí de pruebas de plugins y eso y veras como funciona.

    Ahí nos vemos nax que tengas buena noche.

    PD no has visto el code esta posteado en el área que moderas :D

Leave a Reply

Alibi3col theme by Themocracy