hacktricks/pentesting-web/email-injections.md

9.9 KiB

이메일 주입


Trickest를 사용하여 세계에서 가장 고급 커뮤니티 도구를 활용한 워크플로우를 쉽게 구축자동화하세요.
오늘 바로 액세스하세요:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

제로부터 히어로까지 AWS 해킹 배우기 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

보낸 이메일에 주입

발신자 인수 뒤에 Cc 및 Bcc 주입

From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com

인자 주입

수신자 및 수신자1 계정으로 메시지가 전송됩니다.

From:sender@domain.com%0ATo:attacker@domain.com

주제 인수 주입

원래 수신자와 공격자 계정에 메시지가 전송됩니다.

From:sender@domain.com%0ASubject:This is%20Fake%20Subject

메시지 본문 변경

두 줄의 공백을 삽입한 다음, 메시지를 변경할 메시지를 작성하십시오.

From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.

PHP mail() 함수 악용

# The function has the following definition:

php --rf mail

Function [ <internal:standard> function mail ] {
- Parameters [5] {
Parameter #0 [ <required> $to ]
Parameter #1 [ <required> $subject ]
Parameter #2 [ <required> $message ]
Parameter #3 [ <optional> $additional_headers ]
Parameter #4 [ <optional> $additional_parameters ]
}
}

5번째 매개변수 ($additional_parameters)

이 섹션은 공격자가 이를 제어한다고 가정했을 때 이 매개변수를 악용하는 방법에 기반을 둘 것입니다.

이 매개변수는 PHP가 이진 sendmail을 호출하는 데 사용할 명령줄에 추가될 것입니다. 그러나 이는 함수 escapeshellcmd($additional_parameters)로 살균될 것입니다.

공격자는 이 경우에 sendmail에 대한 추가 매개변수를 주입할 수 있습니다.

/usr/sbin/sendmail 구현의 차이점

sendmail 인터페이스는 시스템에 설치된 MTA 이메일 소프트웨어(Sendmail, Postfix, Exim 등)에 의해 제공됩니다. 기본 기능(예: -t -i -f 매개변수)은 호환성을 유지하기 위해 동일하지만, 다른 기능과 매개변수는 설치된 MTA에 따라 크게 다릅니다.

다음은 sendmail 명령/인터페이스의 다른 man 페이지 예시입니다:

sendmail의 출처에 따라 다양한 옵션을 악용하여 파일을 노출하거나 임의의 명령을 실행할 수 있었습니다. 자세한 내용은 https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html에서 확인하세요.

이메일 이름에 주입

이메일의 무시된 부분

+, -{} 기호는 드물게 태깅에 사용되어 대부분의 이메일 서버에서 무시될 수 있습니다.

괄호 () 사이의 주석은 시작이나 끝에 있더라도 무시됩니다.

화이트리스트 우회

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

따옴표

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

IP

대괄호 사이에 도메인 이름 대신 IP를 사용할 수도 있습니다:

  • john.doe@[127.0.0.1]
  • john.doe@[IPv6:2001:db8::1]

기타 취약점

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

제3자 SSO

XSS

githubsalesforce와 같은 일부 서비스는 XSS 페이로드가 포함된 이메일 주소를 생성할 수 있습니다. 이러한 제공업체를 사용하여 다른 서비스에 로그인하고 이 서비스가 이메일을 올바르게 검증하지 않는 경우, XSS를 유발할 수 있습니다.

계정 탈취

SSO 서비스가 주어진 이메일 주소를 확인하지 않고(예: salesforce와 같이) 계정을 생성할 수 있고, 그런 다음 해당 계정을 사용하여 salesforce를 신뢰하는 다른 서비스에 로그인할 수 있다면 어떤 계정에도 액세스할 수 있습니다.
주어진 이메일이 확인되었는지 여부를 salesforce가 표시하지만 응용 프로그램은 이 정보를 고려해야 합니다.

Reply-To

From: company.com 및 _Replay-To: attacker.com_을 사용하여 이메일을 보낼 수 있으며, 이메일이 내부 주소에서 보내졌기 때문에 자동 응답이 전송된 경우 공격자는 해당 응답을 받을 수 있을 수 있습니다.

하드 바운스 비율

AWS와 같은 특정 서비스는 일반적으로 10%로 설정된 하드 바운스 비율이라는 임계값을 구현합니다. 이는 특히 이메일 전달 서비스에 대한 중요한 지표입니다. 이 비율을 초과하면 AWS의 이메일 서비스와 같은 서비스가 중단되거나 차단될 수 있습니다.

하드 바운스는 수신자 주소가 잘못되었거나 존재하지 않아 이메일이 발신자에게 반환된 이메일을 의미합니다. 이는 이메일이 존재하지 않는 주소로 전송되거나 실제로 존재하지 않는 도메인 또는 수신 서버가 이메일을 수락하지 않는 경우 등 다양한 이유로 발생할 수 있습니다.

AWS의 경우, 1000개의 이메일을 보내고 그 중 100개가 하드 바운스로 결과가 나온다면(잘못된 주소나 도메인 등의 이유로), 이는 10%의 하드 바운스 비율을 의미합니다. 이 비율에 도달하거나 초과하면 AWS SES(Simple Email Service)가 이메일 발송 기능을 차단하거나 중지시킬 수 있습니다.

끊임없는 이메일 서비스를 보장하고 발신자 평판을 유지하기 위해 낮은 하드 바운스 비율을 유지하는 것이 중요합니다. 메일링 리스트의 이메일 주소 품질을 모니터링하고 관리하는 것은 이를 달성하는 데 크게 도움이 될 수 있습니다.

더 자세한 정보는 AWS의 공식 문서인 AWS SES Bounce Handling를 참조하세요.

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로**부터 **히어로**까지 AWS 해킹을 배우세요!

HackTricks를 지원하는 다른 방법:


Trickest를 사용하여 세계에서 가장 고급 커뮤니티 도구를 활용한 워크플로우를 쉽게 구축하고 자동화하세요.
오늘 바로 액세스하세요:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}