# Server Side XSS (Dynamic PDF)
Aprenda hacking no AWS do zero ao herói comhtARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
## Server Side XSS (Dynamic PDF)
Se uma página web está criando um PDF usando entradas controladas pelo usuário, você pode tentar **enganar o bot** que está criando o PDF para **executar código JS arbitrário**.\
Assim, se o **bot criador de PDF encontrar** algum tipo de **tags HTML**, ele vai **interpretá-las**, e você pode **abusar** desse comportamento para causar um **Server XSS**.
Por favor, note que as tags `` nem sempre funcionam, então você precisará de um método diferente para executar JS (por exemplo, abusando de `
```
### SVG
Qualquer um dos payloads anteriores ou seguintes pode ser usado dentro deste payload SVG. Um iframe acessando o subdomínio Burpcollab e outro acessando o endpoint de metadados são colocados como exemplos.
```markup
```
Você pode encontrar muitos **outros payloads SVG** em [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)
### Divulgação de caminho
```markup
```
### Carregar um script externo
A maneira mais eficaz de explorar essa vulnerabilidade é abusar dela para fazer o bot carregar um script que você controla localmente. Assim, você poderá alterar o payload localmente e fazer o bot carregá-lo com o mesmo código todas as vezes.
```markup
')"/>
```
### Ler arquivo local / SSRF
{% hint style="warning" %}
Altere `file:///etc/passwd` para `http://169.254.169.254/latest/user-data` para tentar **acessar uma página web externa (SSRF)**, por exemplo.
Se SSRF for permitido, mas você **não conseguir acessar** um domínio ou IP interessante, [verifique esta página para possíveis bypasses](../ssrf-server-side-request-forgery/url-format-bypass.md).
{% endhint %}
```markup
```
```markup
```
```markup