¿Qué amenazas vienen de CRLF en la generación de correo electrónico?

14

Tengo una aplicación en la que un escáner de código ha identificado las posibilidades de inyección de CRLF en algunas clases relacionadas con la generación de correo electrónico.

Comprendo cómo podría usarse la inyección de CRLF contra mí en ataques basados en URL, pero Google ha estado un poco silencioso ante las amenazas provenientes del correo electrónico. ¿Nos preocupa inyectar diferentes direcciones en conversaciones SMTP como esta?

enlace

?

¿O algo más?

    
pregunta avgvstvs 25.03.2014 - 16:46
fuente

2 respuestas

12

Dependiendo de cómo su aplicación crea la solicitud de correo electrónico RAW real, puede ser posible insertar líneas para modificar los destinatarios, CC, BCC, etc.

Vea este ejemplo :

  

En este contexto, el objetivo es poder enviar correos electrónicos anónimos a   otros destinatarios. Hay numerosos campos adicionales que pueden ser   especificado en los encabezados de correo (ver [RFC 822]). Por ejemplo 'cc'   (Carbon Copy), que envía una copia del mensaje al correo electrónico.   Direcciones dadas como argumentos. Una mejor opción es usar el 'Bcc'   (Copia de carbono oculta) que envía una copia de carbón del mensaje como   con el encabezado 'Cc', excepto que las direcciones de correo electrónico de los destinatarios dadas   como argumentos no se muestran a los encabezados de múltiples destinatarios. Como   especificado en el [RFC 822], se debe agregar un avance de línea para cada   encabezamiento. El carácter (salto de línea) tiene un valor hexadecimal de 0x0A.

  Sender: "[email protected]%0ACc:[email protected]%0ABcc:[email protected],[email protected]"

  Subject: ahem
  Message: "My Message"

resultará en

 To: [email protected] 
 Subject: ahem
 From: [email protected]
 Cc:[email protected]
 Bcc:[email protected],[email protected]

 My Message...

También, consulte algunos OWASP Guidance y algunos ejemplos. en CWE-93 .

    
respondido por el Eric G 25.03.2014 - 17:00
fuente
8

Aquí hay un ejemplo de de una secuencia de comandos de generación de correo PHP que es vulnerable a un ataque de inyección CRLF . En esencia, el código problemático era:

$email=$_POST['email'];
$headers="From: {$email}\r\nReply-To: {$email}"; //create headers
mail('[email protected]',$subject,$content,$headers); //mails it

En ese caso, una API de PHP mal diseñada era difícil de usar correctamente. Como resultado, se podría usar un formulario de contacto basado en la web para enviar spam arbitrario, si un atacante realizó una solicitud POST cuyo parámetro email terminó con un CR LF CC: [email protected] .

Lo invito a enviar su código a Revisión de Código , donde podemos revisar todos los aspectos de su código, incluidos los posibles problemas de seguridad, como como inyección CRLF.

    
respondido por el 200_success 25.03.2014 - 21:02
fuente

Lea otras preguntas en las etiquetas