Se uma página da web estiver criando um PDF usando entrada controlada pelo usuário, você pode tentar **enganar o bot** que está criando o PDF para **executar código JS arbitrário**.
Portanto, 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 **XSS do lado do servidor**.
Observe que as tags `<script></script>` nem sempre funcionam, então você precisará de um método diferente para executar JS (por exemplo, abusando de `<img` ).
Além disso, observe que em uma exploração regular você será **capaz de ver/baixar o PDF criado**, então você será capaz de ver tudo o que você **escreve via JS** (usando `document.write()` por exemplo). Mas, se você **não puder ver** o PDF criado, provavelmente precisará **extrair as informações fazendo solicitações da web para você** (Cego).
Qualquer um dos payloads anteriores ou seguintes podem ser usados dentro deste payload SVG. Um iframe acessando o subdomínio Burpcollab e outro acessando o endpoint de metadados são colocados como exemplos.
A melhor maneira de explorar essa vulnerabilidade é abusar dela para fazer com que o bot carregue um script que você controla localmente. Em seguida, você poderá alterar o payload localmente e fazer com que o bot o carregue com o mesmo código todas as vezes.
### Obter resposta de página web externa como anexo (pontos de extremidade de metadados)
Para explorar a vulnerabilidade de XSS do lado do servidor em endpoints de metadados, podemos usar uma solicitação GET para obter a resposta de uma página da web externa como um anexo em um arquivo PDF dinâmico. Isso pode ser feito usando a tag `<embed>` do HTML para incorporar a página externa no PDF.
Para fazer isso, primeiro precisamos encontrar um endpoint de metadados que aceite uma URL externa como parâmetro. Em seguida, podemos usar uma solicitação GET para esse endpoint, passando a URL externa como parâmetro. Em seguida, podemos usar a tag `<embed>` para incorporar a resposta da página externa no PDF.
Isso pode permitir que um atacante execute código malicioso no contexto do usuário que abre o arquivo PDF, levando a uma possível violação de segurança.
Essa vulnerabilidade pode ser facilmente transformada em SSRF (já que você pode fazer o script carregar recursos externos). Então, tente explorá-la (ler alguns metadados?).
Existem alguns motores HTML 2 PDF que permitem **especificar anexos para o PDF**, como o **PD4ML**. Você pode abusar dessa funcionalidade para **anexar qualquer arquivo local** ao PDF.\
Para abrir o anexo, abra o arquivo com o **Firefox e clique duas vezes no símbolo do clipe de papel** para **armazenar o anexo** como um novo arquivo.\
Capturar a **resposta em PDF** com o burp também deve **mostrar o anexo em texto claro** dentro do PDF.
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).