Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias **mais avançadas** do mundo.\
* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* Adquira o [**material 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** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Server-side request forgery (também conhecido como SSRF) é uma vulnerabilidade de segurança web que permite a um atacante **induzir a aplicação do lado do servidor a fazer requisições HTTP para um domínio arbitrário** de escolha do atacante. (De [aqui](https://portswigger.net/web-security/ssrf))
A primeira coisa que você precisa fazer é capturar uma interação SSRF provocada por você. Para capturar uma interação HTTP ou DNS, você pode usar ferramentas como:
Geralmente você encontrará que o SSRF só está funcionando em **certos domínios na lista branca** ou URL. Na página a seguir, você tem uma **compilação de técnicas para tentar burlar essa lista branca**:
Se o servidor estiver corretamente protegido, você poderá **burlar todas as restrições explorando um Redirecionamento Aberto dentro da página web**. Como a página web permitirá **SSRF para o mesmo domínio** e provavelmente **seguirá redirecionamentos**, você pode explorar o **Redirecionamento Aberto para fazer o servidor acessar qualquer recurso interno**.\
Lightweight Directory Access Protocol. É um protocolo de aplicação usado em uma rede IP para gerenciar e acessar o serviço de diretório distribuído de informações.
Usando este protocolo, você pode especificar o **IP, porta e bytes** que deseja que o servidor **envie**. Então, você pode basicamente explorar um SSRF para **comunicar com qualquer servidor TCP** (mas você precisa saber como falar com o serviço primeiro).\
Felizmente, você pode usar [Gopherus](https://github.com/tarunkant/Gopherus) para criar payloads para vários serviços. Além disso, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) pode ser usado para criar payloads _gopher_ para serviços _Java RMI_.
Se o SSRF for executado pelo **curl**, o curl tem um recurso chamado [**URL globbing**](https://everything.curl.dev/cmdline/globbing) que pode ser útil para contornar WAFs. Por exemplo, neste [**relato**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-easylfi) você pode encontrar este exemplo para um **path traversal via protocolo `file`**:
Algumas aplicações utilizam software de análise do lado do servidor que rastreia visitantes. Este software frequentemente registra o cabeçalho Referrer nas solicitações, uma vez que isso é de particular interesse para o rastreamento de links de entrada. Muitas vezes, o software de análise realmente visita qualquer URL de terceiros que apareça no cabeçalho Referrer. Isso é tipicamente feito para analisar o conteúdo dos sites de referência, incluindo o texto âncora que é usado nos links de entrada. Como resultado, o cabeçalho Referer frequentemente representa uma superfície de ataque produtiva para vulnerabilidades SSRF.\
Para descobrir esse tipo de vulnerabilidades "ocultas", você poderia usar o plugin "**Collaborator Everywhere**" do Burp.
Com essa configuração insegura, podemos **explorar a vulnerabilidade SSRF simplesmente especificando o IP desejado ou nome de domínio no campo SNI**. Por exemplo, o seguinte comando forçaria o Nginx a se conectar a _internal.host.com_:
Se a página web está criando automaticamente um PDF com algumas informações que você forneceu, você pode **inserir algum JS que será executado pelo próprio criador do PDF** (o servidor) enquanto cria o PDF e você poderá abusar de um SSRF. [**Encontre mais informações aqui**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)**.**
Para algumas explorações, você pode precisar **enviar uma resposta de redirecionamento** (potencialmente para usar um protocolo diferente como gopher). Aqui você tem diferentes códigos python para responder com um redirecionamento:
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, com ferramentas comunitárias **mais avançadas** do mundo.\
Se você está tendo **problemas** para **exfiltrar conteúdo de um IP local** por causa de **CORS/SOP**, **DNS Rebidding** pode ser usado para contornar essa limitação:
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) é uma ferramenta para realizar ataques de [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Inclui os componentes necessários para reassociar o endereço IP do nome do servidor DNS do atacante para o endereço IP da máquina alvo e para servir cargas de ataque para explorar software vulnerável na máquina alvo.
1. Peça ao usuário/bot **acesso** a um **domínio** controlado pelo **atacante**
2. O **TTL** do **DNS** é **0** seg (então a vítima verificará o IP do domínio novamente em breve)
3. Uma **conexão TLS** é criada entre a vítima e o domínio do atacante. O atacante introduz o **payload dentro** do **Session ID ou Session Ticket**.
4. O **domínio** iniciará um **loop infinito** de redirecionamentos contra **si mesmo**. O objetivo disso é fazer o usuário/bot acessar o domínio até que ele realize **novamente** uma **solicitação DNS** do domínio.
5. Na solicitação DNS, um endereço IP **privado** é fornecido **agora** (127.0.0.1, por exemplo)
6. O usuário/bot tentará **restabelecer a conexão TLS** e, para isso, **enviará** o ID da **Sessão**/Ticket ID (onde o **payload** do atacante estava contido). Então parabéns, você conseguiu fazer o **usuário/bot atacar a si mesmo**.
Note que durante esse ataque, se você quiser atacar localhost:11211 (_memcache_), você precisa fazer a vítima estabelecer a conexão inicial com www.attacker.com:11211 (o **porto deve ser sempre o mesmo**).\
Para **realizar este ataque, você pode usar a ferramenta**: [https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
Para **mais informações**, veja a palestra onde este ataque é explicado: [https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference](https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference)
A diferença entre um SSRF cego e um não cego é que no cego você não pode ver a resposta da solicitação SSRF. Então, é mais difícil de explorar porque você só poderá explorar vulnerabilidades bem conhecidas.
**Verificando o tempo** das respostas do servidor, pode ser **possível saber se um recurso existe ou não** (talvez leve mais tempo acessando um recurso existente do que um que não existe)
Se você encontrar uma vulnerabilidade SSRF em uma máquina rodando dentro de um ambiente de nuvem, você pode ser capaz de obter informações interessantes sobre o ambiente de nuvem e até credenciais:
_remote-method-guesser_ é um scanner de vulnerabilidade _Java RMI_ que suporta operações de ataque para as vulnerabilidades _Java RMI_ mais comuns. A maioria das operações disponíveis suporta a opção `--ssrf`, para gerar um payload _SSRF_ para a operação solicitada. Juntamente com a opção `--gopher`, payloads _gopher_ prontos para uso podem ser gerados diretamente.
SSRF Proxy é um servidor proxy HTTP multi-thread projetado para tunelar o tráfego HTTP do cliente através de servidores HTTP vulneráveis a Server-Side Request Forgery (SSRF).
* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* Adquira o [**merchandising 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** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, com ferramentas comunitárias **mais avançadas** do mundo.\