Utilice [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y automatizar fácilmente flujos de trabajo con las herramientas comunitarias más avanzadas del mundo.\
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
The `mail()` function in PHP is commonly used to send emails from a web application. However, if not properly secured, it can be vulnerable to email injection attacks. Email injection occurs when an attacker is able to inject malicious content into the email headers, allowing them to manipulate the email's behavior.
La función `mail()` en PHP se utiliza comúnmente para enviar correos electrónicos desde una aplicación web. Sin embargo, si no está debidamente asegurada, puede ser vulnerable a ataques de inyección de correo electrónico. La inyección de correo electrónico ocurre cuando un atacante puede inyectar contenido malicioso en los encabezados del correo electrónico, lo que les permite manipular el comportamiento del correo electrónico.
Email injection attacks typically occur when user-supplied data is not properly validated or sanitized before being used in the `mail()` function. Attackers can exploit this vulnerability by injecting special characters into the email headers, such as newline characters (\n) or carriage return characters (\r).
Los ataques de inyección de correo electrónico generalmente ocurren cuando los datos proporcionados por el usuario no se validan o se desinfectan correctamente antes de ser utilizados en la función `mail()`. Los atacantes pueden explotar esta vulnerabilidad inyectando caracteres especiales en los encabezados del correo electrónico, como caracteres de nueva línea (\n) o caracteres de retorno de carro (\r).
- **Spamming**: Attackers can use email injection to send spam emails from the compromised application, potentially damaging the reputation of the sender's domain.
- **Spamming**: Los atacantes pueden utilizar la inyección de correo electrónico para enviar correos electrónicos no deseados desde la aplicación comprometida, lo que podría dañar la reputación del dominio del remitente.
- **Phishing**: By injecting malicious content into the email headers, attackers can trick recipients into revealing sensitive information or performing actions that they shouldn't.
- **Phishing**: Al inyectar contenido malicioso en los encabezados del correo electrónico, los atacantes pueden engañar a los destinatarios para que revelen información confidencial o realicen acciones que no deberían realizar.
- **Email spoofing**: Email injection can be used to spoof the sender's email address, making it appear as if the email was sent from a different source. This can be used for impersonation or to deceive recipients.
- **Suplantación de identidad en el correo electrónico**: La inyección de correo electrónico se puede utilizar para falsificar la dirección de correo electrónico del remitente, haciendo que parezca que el correo electrónico se envió desde una fuente diferente. Esto se puede utilizar para suplantación de identidad o para engañar a los destinatarios.
To prevent email injection attacks, it is important to properly validate and sanitize user-supplied data before using it in the `mail()` function. Here are some techniques to prevent email injection:
Para prevenir ataques de inyección de correo electrónico, es importante validar y desinfectar correctamente los datos proporcionados por el usuario antes de utilizarlos en la función `mail()`. Aquí hay algunas técnicas para prevenir la inyección de correo electrónico:
- **Input validation**: Implement strict input validation to ensure that user-supplied data does not contain any special characters that could be used for email injection.
- **Validación de entrada**: Implemente una validación estricta de entrada para asegurarse de que los datos proporcionados por el usuario no contengan caracteres especiales que puedan ser utilizados para la inyección de correo electrónico.
- **Desinfección de entrada**: Desinfecte los datos proporcionados por el usuario eliminando o codificando cualquier carácter especial que pueda ser utilizado para la inyección de correo electrónico.
- **Use email libraries**: Instead of using the `mail()` function directly, consider using email libraries or frameworks that provide built-in protection against email injection attacks.
- **Utilice bibliotecas de correo electrónico**: En lugar de utilizar la función `mail()` directamente, considere utilizar bibliotecas o frameworks de correo electrónico que proporcionen protección incorporada contra ataques de inyección de correo electrónico.
By implementing these prevention techniques, you can significantly reduce the risk of email injection attacks and ensure the security of your web application.
Al implementar estas técnicas de prevención, puede reducir significativamente el riesgo de ataques de inyección de correo electrónico y garantizar la seguridad de su aplicación web.
Este parámetro se agregará a la línea de comandos que PHP utilizará para invocar el binario sendmail. Sin embargo, se sanitizará con la función `escapeshellcmd($additional_parameters)`.
La interfaz de **sendmail** es **proporcionada por el software de correo electrónico MTA** (Sendmail, Postfix, Exim, etc.) instalado en el sistema. Aunque la **funcionalidad básica** (como los parámetros -t -i -f) se mantiene **igual** por razones de compatibilidad, **otras funciones y parámetros** varían considerablemente según el MTA instalado.
Dependiendo del **origen del binario sendmail**, se han descubierto diferentes opciones para abusar de ellos y **filtrar archivos o incluso ejecutar comandos arbitrarios**. Mira cómo en [**https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html**](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)
Los símbolos: **+, -** y **{}** en raras ocasiones se pueden usar para etiquetar y ser ignorados por la mayoría de los servidores de correo electrónico
Algunos servicios como **github** o **salesforce permiten** crear una **dirección de correo electrónico con payloads XSS**. Si puedes **usar estos proveedores para iniciar sesión en otros servicios** y estos servicios **no sanitizan** correctamente el correo electrónico, podrías causar **XSS**.
Si un servicio de **SSO** te permite **crear una cuenta sin verificar la dirección de correo electrónico proporcionada** (como **salesforce**) y luego puedes usar esa cuenta para **iniciar sesión en un servicio diferente** que **confía** en salesforce, podrías acceder a cualquier cuenta.\
Ten en cuenta que salesforce indica si el correo electrónico proporcionado fue verificado o no, pero la aplicación debe tener en cuenta esta información.
Puedes enviar un correo electrónico utilizando _**From: company.com**_\*\* \*\* y _**Replay-To: attacker.com**_ y si se envía alguna **respuesta automática** debido a que el correo electrónico se envió **desde** una **dirección interna**, el **atacante** podría **recibir** esa **respuesta**.
Algunas aplicaciones como AWS tienen una **Tasa de rebote duro** (en AWS es del 10%), que bloquea el servicio de correo electrónico cada vez que está sobrecargado.
Un **rebote duro** es un **correo electrónico** que no se pudo entregar por alguna razón permanente. Tal vez la dirección de correo electrónico sea falsa, tal vez el dominio del correo electrónico no sea un dominio real, o tal vez el servidor del destinatario del correo electrónico no acepte **correos electrónicos**, eso significa que de un total de 1000 correos electrónicos, si 100 de ellos son falsos o inválidos y causan que todos reboten, **AWS SES** bloqueará tu servicio.
Entonces, si puedes **enviar correos electrónicos (quizás invitaciones) desde la aplicación web a cualquier dirección de correo electrónico**, podrías provocar este bloqueo enviando cientos de invitaciones a usuarios y dominios inexistentes: Denegación de servicio del servicio de correo electrónico.
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente, utilizando las herramientas comunitarias más avanzadas del mundo.\