Blog

Coders Conquer Security: Serie Share & Learn: Inyección de encabezados de correo electrónico

March 21, 2019
Jaap Karan Singh

Hoy en día, es común que los sitios web y las aplicaciones permitan a los usuarios enviar comentarios, recordatorios de citas y otros datos a través de una aplicación mediante el correo electrónico. Normalmente, este proceso es bastante benigno y la mayoría de las personas ni siquiera piensan en él en términos de un posible riesgo de seguridad.

Sin embargo, como cualquier otro elemento de diseño que permita la entrada del usuario, si no se configuran correctamente, estas funciones aparentemente intrascendentes pueden ser manipuladas por usuarios malintencionados con fines nefastos. Todo lo que se necesita es dar al usuario la posibilidad de introducir código en el campo de entrada para que el servidor lo procese por error. De repente, una aplicación de correo electrónico puede convertirse en un arma.

En este episodio aprenderemos:

  • Cómo pueden los atacantes activar una inyección de encabezados de correo electrónico
  • Por qué son peligrosas las inyecciones de encabezados de correo electrónico
  • Técnicas que pueden corregir esta vulnerabilidad.

¿Cómo activan los atacantes una inyección de encabezado de correo electrónico?

Aunque no suele considerarse programable, la mayoría de las aplicaciones o funciones de contacto por correo electrónico que se incluyen en sitios web o aplicaciones pueden aceptar entradas que cambien la naturaleza de la consulta. Normalmente, el servidor lo hace automáticamente después de que un usuario haya introducido su información, como su dirección de correo electrónico, en el campo del contrato. Luego, el programa configura el mensaje, agrega los destinatarios apropiados y envía el mensaje utilizando su servidor de correo electrónico predeterminado.

Una solicitud POST típica por correo electrónico podría tener este aspecto:

PUBLICACIÓN /contact.php HTTP/1.1
Anfitrión: www.example.com

Y genere un código con este aspecto después de que un usuario haya introducido su información:

name=realName&replyto= RealName@ValidServer.com &message=Recordatorio de su cita

El problema se produce cuando los piratas informáticos comienzan a inyectar código en el proceso en lugar de solo su información de contacto. Esto no es diferente a un ataque de inyección SQL, sino que se realiza contra la aplicación de correo electrónico. Un ejemplo de una consulta manipulada que, en su lugar, enviaría spam desde tu aplicación a un usuario objetivo podría tener este aspecto:

name=FakeName\nbcc: SpammedVictim@TargetAddress.com &ReplyTo= FakeName@ValidServer.com &message=Mensaje de spam

¿Por qué es peligrosa la inyección de encabezados de correo electrónico?

Dependiendo de la habilidad del usuario malintencionado y de sus intenciones, los ataques de inyección de encabezados de correo electrónico pueden ser desde simplemente molestos hasta altamente peligrosos en términos de gravedad. En el extremo inferior de la escala de gravedad, es posible que puedan insertar su información de contacto en el campo BCC de un mensaje saliente enviado a un buzón secreto o no revelado de la empresa y, de este modo, revelárselo a un pirata informático.

Y lo que es más preocupante, podría permitirles controlar completamente tu servidor de correo electrónico para enviar correos electrónicos de spam, suplantación de identidad u otros ataques desde tu organización. No necesitarían fingir el hecho de que el correo electrónico proviene de sus servidores internos, porque en realidad se originaría allí. Y si no supervisas esa actividad, pueden incluso automatizar el proceso, enviando cientos o miles de correos electrónicos a través de los servidores de tu organización, de forma que parezca que estás instigando esa actividad.

Eliminar el problema de la inyección de encabezados de correo electrónico

Al igual que con Inyección SQL y otros ataques de esta naturaleza, la clave para eliminar la posibilidad de que un usuario malintencionado aproveche la vulnerabilidad de un encabezado de correo electrónico es no confiar nunca en las entradas del usuario. Si un usuario es capaz de introducir información, aunque parezca un proceso trivial, como introducir su dirección de correo electrónico, hay que asumir lo peor. O al menos asuma que lo peor es posible.

La validación de entrada se debe realizar para todos los parámetros, y esto incluye al agregar una capacidad de contacto por correo electrónico a una aplicación o sitio web. Las listas blancas se pueden usar para habilitar específicamente los procesos y campos que consideres válidos y, al mismo tiempo, denegar todo lo demás. De hecho, la mayoría de los marcos tienen bibliotecas disponibles que se pueden usar para ayudar a limitar las funciones únicamente a las necesarias. Si lo hace, evitará que sus servidores reconozcan y procesen cualquier código o comando ingresado por usuarios malintencionados.

Más información sobre las inyecciones de encabezados de correo electrónico

Para leer más, puede echar un vistazo a lo que dice OWASP sobre inyecciones de encabezados de correo electrónico. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Crees que estás listo para encontrar y corregir una inyección de correo electrónico ahora mismo? Dirígete a la plataforma y pon a prueba tus habilidades: [Empieza aquí]

Share on social
Lema

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
book a demo
Lema

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Post-Quantum Cryptography: Quantum Computers Will Break Today’s Encryption – Are You Ready?

Post-quantum cryptography (PQC) is critical for protecting data from quantum computing threats. Learn how “harvest now, decrypt later” exposes risk and how developers can prepare for quantum-safe security.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Enabler 2: Senior Leadership Sponsorship

Explore Enabler 2: Senior Leadership Sponsorship. Learn why active buy-in from the CIO, CTO, and CISO is vital to drive developer adoption and program credibility.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI

While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo