# Server Side Inclusion/Edge Side Inclusion Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<imgsrc="../.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="../.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="../.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="../.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* 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 %}
## Server Side Inclusion Basic Information
**(Introdução retirada da** [**documentação do Apache**](https://httpd.apache.org/docs/current/howto/ssi.html)**)**
SSI (Server Side Includes) são diretivas que são **colocadas em páginas HTML e avaliadas no servidor** enquanto as páginas estão sendo servidas. Elas permitem que você **adicione conteúdo gerado dinamicamente** a uma página HTML existente, sem precisar servir a página inteira através de um programa CGI ou outra tecnologia dinâmica.\
A decisão de quando usar SSI e quando ter sua página totalmente gerada por algum programa geralmente é uma questão de quão estática é a página e quanto precisa ser recalculado toda vez que a página é servida. SSI é uma ótima maneira de adicionar pequenos pedaços de informação, como a hora atual - mostrado acima. Mas se a maior parte da sua página está sendo gerada no momento em que é servida, você precisa procurar alguma outra solução.
Há um problema **com o cache de informações ou aplicações dinâmicas**, pois parte do conteúdo pode ter **variado** para a próxima vez que o conteúdo for recuperado. É para isso que o **ESI** é usado, para indicar usando tags ESI o **conteúdo dinâmico que precisa ser gerado** antes de enviar a versão em cache.\
Se um **atacante** conseguir **injetar uma tag ESI** dentro do conteúdo em cache, então, ele poderá **injetar conteúdo arbitrário** no documento antes que ele seja enviado aos usuários.
// Valid for Akamai, sends debug information in the response
<esi:debug/>
```
### Exploração de ESI
[GoSecure criou](https://www.gosecure.net/blog/2018/04/03/beyond-xss-edge-side-include-injection/) uma tabela para entender possíveis ataques que podemos tentar contra diferentes softwares compatíveis com ESI, dependendo da funcionalidade suportada:
* **Includes**: Suporta a diretiva `<esi:includes>`
* **Vars**: Suporta a diretiva `<esi:vars>`. Útil para contornar Filtros XSS
* **Cookie**: Cookies do documento são acessíveis ao mecanismo ESI
* **Lista de Permissão de Hosts**: Neste caso, inclusões ESI só são possíveis a partir de hosts de servidor permitidos, tornando SSRF, por exemplo, apenas possível contra esses hosts
| **Software** | **Includes** | **Vars** | **Cookies** | **Cabeçalhos Upstream Necessários** | **Lista de Permissão de Hosts** |
É possível usar a sintaxe de **`eXtensible Stylesheet Language Transformations (XSLT)`** no ESI apenas indicando o valor do parâmetro **`dca`** como **`xslt`**. O que pode permitir abusar do **XSLT** para criar e explorar uma vulnerabilidade de Entidade Externa XML (XXE):
Aprenda e pratique Hacking AWS:<imgsrc="../.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="../.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="../.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="../.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Verifique os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.