Explotando los "Enviar a Amigos"
bline || 2009-10-26 14:47:39 » 197 hits

[+][-]               

Hoy en día, en la mayoría de las páginas web actuales, y de modo autopublicitário existen una serie de "páginas" o scripts que dan la opción de enviar cierto contenido mediante un correo electrónico a supuestos amigos con el fin de que lleguen a su buzón y visites la web. Es lo que se conoce como "Send to Friend" o en castellano "Enviar a un amigo"
En muchas ocasiones se trata meramente de un formulario de envio que consta de un campo para insertar tu email, otro para insertar tu nombre y luego lo mismo para tu \"amigo\" acompañado opcionalmente de un área de texto para que añadas una opinión personal para que le llegue incluida en el mail.

Hasta aquí bien, pero ?dónde está realmente el problema? en que cualquier persona con un poco de conocimiento podría atacar el correo electrónico de cualquier persona floodeando con Spam a su antojo.

html_entity_decode(Esto se podría arreglar en su mayoría añadiendo una imagen Captcha de Verificación)


Supongamos el siguiente caso:
Juan, que es un programador conocedor de PHP, ha creado una página web donde uno de sus contenidos es \"enviar_amigo.php\" sirve para notificar a sus amigos de artículos destacados, cuyo contenido ( extremadamente simple ) es el siguiente:



html_entity_decode(Juan también podría haber optado por aumentar la seguridad, como comprobar el referer, es decir, la página de la que proviene el visitante, así como añadir campos ocultos con un valor fijo para que los bots no puedan, de un modo u otro traspasar el script. Hubiera sido inutil)


Aunque el método POST sea algo \"más\" seguro que el GET (dado que no se manejan los parámetros por URL) es igualmente vulnerable a la hora de ser atacado por una persona que tenga una mínima idea de lo que realiza. Hace tiempo el fallo de seguridad que comentamos aquí fue usado en el script CMS Joomla! de modo que un atacante podía saturar en correo de otro. Afortunadamente ese error ya esta sanado.

Si analizamos las cabeceras de la web podemos obtener datos muy importantes sobre el envío del formulario por HTTP, como por ejemplo (datos inventados):

----------------------------------------------------------
http://www.juan.com/enviar_a_un_amigo/
POST /enviar_a_un_amigo/ HTTP/1.1
User-Agent: Mozilla 5.0 Juan\'s Version
Connection: keep-alive
Referer: http://www.juan.com/enviar_a_un_amigo/15
Content-Type: application/x-www-form-urlencoded
[b]nombre=Pepe

Contenido relacionado: -
Tags:

El sistema de comentarios no esta habilitado