mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['pentesting-web/email-injections.md', 'todo/emails-vulns.md'
This commit is contained in:
parent
2562d2dc28
commit
bce41dc820
2 changed files with 99 additions and 37 deletions
|
@ -840,7 +840,6 @@
|
|||
* [Burp Suite](todo/burp-suite.md)
|
||||
* [Other Web Tricks](todo/other-web-tricks.md)
|
||||
* [Interesting HTTP](todo/interesting-http.md)
|
||||
* [Emails Vulnerabilities](todo/emails-vulns.md)
|
||||
* [Android Forensics](todo/android-forensics.md)
|
||||
* [TR-069](todo/tr-069.md)
|
||||
* [6881/udp - Pentesting BitTorrent](todo/6881-udp-pentesting-bittorrent.md)
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
<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) 轻松构建和 **自动化工作流**,由世界上 **最先进** 的社区工具提供支持。\
|
||||
使用 [**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" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (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 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
学习和实践 AWS 黑客技术:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (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 培训 GCP 红队专家 (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -43,9 +43,9 @@ From:sender@domain.com%0ASubject:This is%20Fake%20Subject
|
|||
```
|
||||
假主题将被添加到原始主题中,在某些情况下将替换它。这取决于邮件服务的行为。
|
||||
|
||||
### 更改消息正文
|
||||
### 更改消息的主体
|
||||
|
||||
注入一个两行换行符,然后写下您的消息以更改消息的正文。
|
||||
注入一个两行换行符,然后写下您的消息以更改消息的主体。
|
||||
```
|
||||
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
|
||||
```
|
||||
|
@ -67,15 +67,15 @@ Parameter #4 [ <optional> $additional_parameters ]
|
|||
```
|
||||
#### 第五个参数 ($additional\_parameters)
|
||||
|
||||
本节将基于**假设攻击者控制此参数的情况下如何滥用此参数**。
|
||||
本节将基于**假设攻击者控制了此参数的情况下如何滥用此参数**。
|
||||
|
||||
此参数将被添加到 PHP 用于调用二进制 sendmail 的命令行中。然而,它将通过函数 `escapeshellcmd($additional_parameters)` 进行清理。
|
||||
|
||||
在这种情况下,攻击者可以**注入 sendmail 的提取参数**。
|
||||
|
||||
#### /usr/sbin/sendmail 实现的差异
|
||||
#### /usr/sbin/sendmail 实现中的差异
|
||||
|
||||
**sendmail** 接口是由安装在系统上的 **MTA 邮件软件**(Sendmail、Postfix、Exim 等)提供的。尽管出于兼容性原因,**基本功能**(如 -t -i -f 参数)保持**相同**,但**其他功能和参数**根据安装的 MTA 有很大差异。
|
||||
**sendmail** 接口是由系统上安装的 MTA 邮件软件(Sendmail、Postfix、Exim 等)**提供的**。尽管出于兼容性原因,**基本功能**(如 -t -i -f 参数)保持**相同**,但**其他功能和参数**根据安装的 MTA 有很大差异。
|
||||
|
||||
以下是 sendmail 命令/接口的不同手册页的一些示例:
|
||||
|
||||
|
@ -83,19 +83,23 @@ Parameter #4 [ <optional> $additional_parameters ]
|
|||
* 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)
|
||||
根据**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)
|
||||
|
||||
## 在电子邮件名称中注入
|
||||
|
||||
{% hint style="danger" %}
|
||||
请注意,如果您设法在具有任意域名的服务中创建帐户(如 Github、Gitlab、CloudFlare Zero trust...)并通过在您的邮件地址中接收验证电子邮件来验证它,您可能能够访问受害公司敏感位置
|
||||
{% endhint %}
|
||||
|
||||
### 被忽略的电子邮件部分
|
||||
|
||||
符号:**+、-** 和 **{}** 在少数情况下可以用于标记,并被大多数电子邮件服务器忽略。
|
||||
符号:**+、-** 和 **{}** 在少数情况下可以用于标记,并被大多数电子邮件服务器忽略
|
||||
|
||||
* 例如:john.doe+intigriti@example.com → john.doe@example.com
|
||||
* 例如 john.doe+intigriti@example.com → john.doe@example.com
|
||||
|
||||
**括号 () 中的注释**在开头或结尾也会被忽略。
|
||||
**括号 () 中的注释** 在开头或结尾也会被忽略
|
||||
|
||||
* 例如:john.doe(intigriti)@example.com → john.doe@example.com
|
||||
* 例如 john.doe(intigriti)@example.com → john.doe@example.com
|
||||
|
||||
### 白名单绕过
|
||||
|
||||
|
@ -112,38 +116,97 @@ Parameter #4 [ <optional> $additional_parameters ]
|
|||
* john.doe@\[127.0.0.1]
|
||||
* john.doe@\[IPv6:2001:db8::1]
|
||||
|
||||
### 其他漏洞
|
||||
### 电子邮件编码
|
||||
|
||||
如 [**本研究**](https://portswigger.net/research/splitting-the-email-atom) 中所述,电子邮件名称也可以包含编码字符:
|
||||
|
||||
* **PHP 256 溢出**:PHP `chr` 函数将继续向字符添加 256,直到它变为正数,然后执行操作 `%256`。
|
||||
* `String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @`
|
||||
|
||||
{% hint style="success" %}
|
||||
此技巧的目的是以 `RCPT TO:<"collab@psres.net>collab"@example.com>` 这样的注入结束\
|
||||
这将把验证电子邮件发送到与预期不同的电子邮件地址(因此在电子邮件名称中引入另一个电子邮件地址并在发送电子邮件时破坏语法)
|
||||
{% endhint %}
|
||||
|
||||
不同的编码:
|
||||
```bash
|
||||
# Format
|
||||
=? utf-8 ? q ? =41=42=43 ?= hi@example.com --> ABChi@example.com
|
||||
|
||||
# =? -> Start of encode
|
||||
# utf-8 -> encoding used
|
||||
# ? -> separator
|
||||
# q -> type of encoding
|
||||
# ? -> separator
|
||||
# =41=42=43 -> Hex encoded data
|
||||
# ?= end of encoding
|
||||
|
||||
# Other encodings, same example:
|
||||
# iso-8859-1
|
||||
=?iso-8859-1?q?=61=62=63?=hi@example.com
|
||||
# utf-8
|
||||
=?utf-8?q?=61=62=63?=hi@example.com
|
||||
# utf-7
|
||||
=?utf-7?q?<utf-7 encoded string>?=hi@example.com
|
||||
# q encoding + utf-7
|
||||
=?utf-7?q?&=41<utf-7 encoded string without initial A>?=hi@example.com
|
||||
# base64
|
||||
=?utf-8?b?QUJD?=hi@example.com
|
||||
# bas64 + utf-7
|
||||
=?utf-7?q?<utf-7 encoded string in base64>?=hi@example.com
|
||||
#punycode
|
||||
x@xn--svg/-9x6 → x@<svg/
|
||||
```
|
||||
Payloads:
|
||||
|
||||
* Github: `=?x?q?collab=40psres.net=3e=00?=foo@example.com`
|
||||
* 注意编码的 `@` 为 =40,编码的 `>` 为 `=3e` 和 `null` 为 `=00` 
|
||||
* 它将把验证邮件发送到 `collab@psres.net`
|
||||
* Zendesk: `"=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com`
|
||||
* 与之前相同的技巧,但在开头添加了一些常规引号,并在编码的 `@` 之前添加了编码引号 `=22`,然后在下一个邮件之前开始和结束一些引号,以修复 Zendesk 内部使用的语法
|
||||
* 它将把验证邮件发送到 `collab@psres.net`
|
||||
* Gitlab: `=?x?q?collab=40psres.net_?=foo@example.com`
|
||||
* 注意使用下划线作为分隔地址的空格
|
||||
* 它将把验证邮件发送到 `collab@psres.net`
|
||||
* Punycode: 使用 Punycode 可以在 Joomla 中注入标签 `<style` 并利用它通过 CSS 外泄窃取 CSRF 令牌。
|
||||
|
||||
#### Tooling
|
||||
|
||||
* 有一个 **Burp Suite Turbo Intruder 脚本** 用于模糊这些组合,以尝试攻击电子邮件格式。该脚本已经有潜在的有效组合。
|
||||
* 还可以使用 [Hackvertor](https://portswigger.net/bappstore/65033cbd2c344fbabe57ac060b5dd100) 创建电子邮件拆分攻击
|
||||
|
||||
### Other vulns
|
||||
|
||||
![https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0](<../.gitbook/assets/image (1131).png>)
|
||||
|
||||
## 第三方 SSO
|
||||
## Third party SSO
|
||||
|
||||
### XSS
|
||||
|
||||
一些服务如 **github** 或 **salesforce 允许**您创建带有 **XSS 负载的电子邮件地址**。如果您可以**使用这些提供商登录其他服务**,而这些服务**没有正确清理**电子邮件,您可能会导致 **XSS**。
|
||||
一些服务如 **github** 或 **salesforce 允许** 您创建一个 **带有 XSS 负载的电子邮件地址**。如果您可以 **使用这些提供商登录其他服务**,而这些服务 **没有正确清理** 电子邮件,您可能会导致 **XSS**。
|
||||
|
||||
### 账户接管
|
||||
### Account-Takeover
|
||||
|
||||
如果 **SSO 服务** 允许您 **创建一个不验证给定电子邮件地址的账户**(如 **salesforce**),然后您可以使用该账户在 **信任** salesforce 的不同服务中 **登录**,您可能会访问任何账户。\
|
||||
_请注意,salesforce 指示给定的电子邮件是否经过验证,但应用程序也应考虑此信息。_
|
||||
如果 **SSO 服务** 允许您 **创建一个不验证给定电子邮件地址的帐户**(如 **salesforce**),然后您可以使用该帐户 **登录到一个信任** salesforce 的不同服务,您可能会访问任何帐户。\
|
||||
_注意,salesforce 指示给定的电子邮件是否经过验证,但应用程序应该考虑这一信息。_
|
||||
|
||||
## 回复至
|
||||
## Reply-To
|
||||
|
||||
您可以使用 _**From: company.com**_ 和 _**Replay-To: attacker.com**_ 发送电子邮件,如果由于电子邮件是从 **内部地址** 发送的而发送了任何 **自动回复**,则 **攻击者** 可能能够 **接收**该 **响应**。
|
||||
您可以使用 _**From: company.com**_ 和 _**Replay-To: attacker.com**_ 发送电子邮件,如果由于电子邮件是 **从** 内部地址发送的而发送了任何 **自动回复**,则 **攻击者** 可能能够 **接收** 该 **响应**。
|
||||
|
||||
## 硬退信率
|
||||
## Hard Bounce Rate
|
||||
|
||||
某些服务,如 AWS,实施一个称为 **硬退信率** 的阈值,通常设置为 10%。这是一个关键指标,尤其对于电子邮件投递服务。当此比率超过时,服务(如 AWS 的电子邮件服务)可能会被暂停或阻止。
|
||||
某些服务,如 AWS,实施一个称为 **Hard Bounce Rate** 的阈值,通常设置为 10%。这是一个关键指标,尤其对于电子邮件投递服务。当超过此比率时,服务(如 AWS 的电子邮件服务)可能会被暂停或阻止。
|
||||
|
||||
**硬退信** 是指由于收件人地址无效或不存在而被退回给发件人的 **电子邮件**。这可能由于多种原因发生,例如 **电子邮件** 发送到不存在的地址、一个不真实的域名,或收件人服务器拒绝接受 **电子邮件**。
|
||||
**hard bounce** 指的是 **电子邮件** 被退回给发件人,因为收件人的地址无效或不存在。这可能由于多种原因发生,例如 **电子邮件** 被发送到不存在的地址、一个不真实的域名,或收件服务器拒绝接受 **电子邮件**。
|
||||
|
||||
在 AWS 的上下文中,如果您发送 1000 封电子邮件,其中 100 封导致硬退信(由于无效地址或域名等原因),这将意味着 10% 的硬退信率。达到或超过此比率可能会触发 AWS SES(简单电子邮件服务)阻止或暂停您的电子邮件发送能力。
|
||||
在 AWS 的上下文中,如果您发送 1000 封电子邮件,其中 100 封导致硬退回(由于无效地址或域名等原因),这将意味着 10% 的硬退回率。达到或超过此比率可能会触发 AWS SES(简单电子邮件服务)阻止或暂停您的电子邮件发送能力。
|
||||
|
||||
保持低硬退信率对于确保不间断的电子邮件服务和维护发件人声誉至关重要。监控和管理您的邮件列表中电子邮件地址的质量可以显著帮助实现这一目标。
|
||||
保持低硬退回率对于确保不间断的电子邮件服务和维护发件人声誉至关重要。监控和管理您的邮件列表中电子邮件地址的质量可以显著帮助实现这一目标。
|
||||
|
||||
有关更详细的信息,可以参考 AWS 关于处理退信和投诉的官方文档 [AWS SES 退信处理](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types)。
|
||||
有关更详细的信息,可以参考 AWS 关于处理退回和投诉的官方文档 [AWS SES Bounce Handling](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types)。
|
||||
|
||||
## 参考文献
|
||||
## References
|
||||
|
||||
* [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)
|
||||
|
@ -151,16 +214,16 @@ _请注意,salesforce 指示给定的电子邮件是否经过验证,但应
|
|||
* [https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0](https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0)
|
||||
|
||||
{% hint style="success" %}
|
||||
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (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 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<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">\
|
||||
Learn & practice GCP Hacking: <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)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>支持 HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* 查看 [**订阅计划**](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) github 仓库提交 PR 来分享黑客技巧。
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
@ -168,7 +231,7 @@ _请注意,salesforce 指示给定的电子邮件是否经过验证,但应
|
|||
<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) 轻松构建和 **自动化工作流程**,由世界上 **最先进** 的社区工具提供支持。\
|
||||
立即获取访问权限:
|
||||
Use [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_content=email-injections) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
|
||||
Get Access Today:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}
|
||||
|
|
Loading…
Reference in a new issue