Convertir srtring de email a imagen [antispam]

Iniciado por HckDrk, Febrero 03, 2013, 04:10:58 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 03, 2013, 04:10:58 AM Ultima modificación: Marzo 22, 2014, 01:54:33 PM por Expermicid
hola todos! no se me ocurria como nombrar el post! XD

he tenido la experiencia de que los bots que indagan por las webs, buscando correos para hacer publicidad no deseada (spam), y me mandan correos... a partir de eso, se me ocurrió hacer un script que detecta con expresiones regulares el correo dentro de una cadena de texto, pasa por rot13 el correo, y muestra una imagen en vez del correo

aquí les dejo mi sencillo y pequeño script, que cuenta con 2 archivos, el index, y el archivo donde se generará la imagen...

index.php:
Código: php

<html>
<head>
<title>Cambia correo por imagen</title>
</head>
<body bgcolor="black" text="white">
<form method="post" action="">
<textarea cols="50" rows="20" name="contenido"><?php echo htmlentities($_POST['contenido']); ?></textarea><br>
<input type="submit" value="enviar" name="enviar">
</form>
<?php


function correo_img($correo){

$ss= '/(\S+@\S+\.\S+)/ie';
$resultado= preg_replace($ss,"str_rot13('$1')", $correo);
$s= '/(\S+@\S+\.\S+)/i';
$r = "<img src='imagen.php?text=$1&color=w'>";
$resultado= preg_replace($s, $r, $resultado);

return $resultado;

}


if($_POST['enviar']){


$contenido=htmlentities($_POST['contenido']);
$contenido=str_replace("\n", "<br>\n", $contenido);
echo correo_img($contenido);


}

?>
</body>
</html>




imagen.php
Código: php

<?php

$text=str_rot13(strip_tags($_GET['text']));
$color=strip_tags($_GET['color']);


header("Content-Type: image/png");
if($color!="b" && $color!="w"){
$width=55;
}else{
$width=strlen($text)*10;
}
$imagen = @imagecreate($width, 20);

if($color=="b"){
$color_fondo = imagecolorallocate($imagen, 0, 0, 0);
$color_texto = imagecolorallocate($imagen, 255, 255, 255);
}else if($color=="w"){
$color_fondo = imagecolorallocate($imagen, 255, 255, 255);
$color_texto = imagecolorallocate($imagen, 0, 0, 0);
}else{
$color_fondo = imagecolorallocate($imagen, 255, 255, 255);
$color_texto = imagecolorallocate($imagen, 255, 0, 0);
$text="error!";
}

imagestring($imagen, 5, 5, 6,  $text, $color_texto);
imagepng($imagen);
imagedestroy($imagen);

?>



si desean ver su funcionamiento, aqui les dejo un demo...
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos!

hola bro me gusto mucho me podrias explicar una cosa je! para que sirve $1
$resultado= preg_replace($ss,"str_rot13('$1')", $correo);
saludos espero tu respuesta :P gracias por el aporte :D
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

$$ = /(\S+@\S+\.\S+)/ie

Entonce quedara así:
Código: php
$resultado= preg_replace($ss,"str_rot13('$1')", $correo);
$resultado= preg_replace("/(\S+@\S+\.\S+)/ie","str_rot13('$1')", $correo);

$i, hace referencia al paréntesis del patrón (el primer parámetro, la regex).

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

no me parece muy seguro, porque el texto sigue estando en el url de la imagen, es muy sencillo volverlo a dejar como estaba.

saludos!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
$$ = /(\S+@\S+\.\S+)/ie

Entonce quedara así:
Código: php
$resultado= preg_replace($ss,"str_rot13('$1')", $correo);
$resultado= preg_replace("/(\S+@\S+\.\S+)/ie","str_rot13('$1')", $correo);

$i, hace referencia al paréntesis del patrón (el primer parámetro, la regex).

Saludos.

muchas gracias bro :)
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Se ve muy bueno tengo mi PC dañada cuando reuna dinero me compro una y asi seguire practicando....

Saludos...


Un Hacker sabe de la materia;
Un Lamer Cree Saberlo;
Y yo solo aprendo.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
no me parece muy seguro, porque el texto sigue estando en el url de la imagen, es muy sencillo volverlo a dejar como estaba.

saludos!

puedes modificar el script para que el correo lo extraiga de una DB o algo... es sólo un demo...

Agarra el codigo y modificala que no esta complicado solo agarras el nombre desde una variable que llega a ser un query a la BD con el User Name que quieres extraer

Regards,
Snifer
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Hola, la idea es buena y de hecho hay muchos que lo usan.

Se ve corrido:


Pero para mi es una solución un tanto rebuscada para algo tan simple, que pasa si estoy utilizando python o perl o .net o java? tendría que cranearme como hacerlo tambien de esa manera.

En cambio hay otras alternativas mejores, por ejemplo:

Digamos que tengo un mail, este mail estará en urlencode:

<div class="_mail">%79%6f%40%67%6d%61%69%6c%2e%63%6f%6d</div>

Entonces desde <head> agregamos una etiqueta javascript que tome todas las divisiones con correos y las transforme en texto:
Código: javascript
$('._mail').each(function(){
$(this).html(
'<a href="mailto:' +
unescape($(this).html()) +
'">' +
unescape($(this).html()) +
'</a>'
);
});


Recordar que los robots de busqueda de correos no utilizan algoritmos personalizados para un solo sitio web o si no el administrador se volvería loco por un par de correos, solo basta con cosas simples para ocultarlos.

Cuidado con utiliza el famoso test [at] gmail [dot] com porque hay muchos robots que incluyen eso en sus algoritmos para rebuscarlos.

Lo de la imagen es buena idea pero a traves de javascript también lo es.
Se puede usar otro algoritmo no necesariamente urlencode, puede ser base64 o hasta rc4 con clave pública.

Saludos.
- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta