Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* **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).
A vulnerabilidade de server-side request forgery (também conhecida como SSRF) é uma vulnerabilidade de segurança web que permite que um atacante **induza a aplicação do lado do servidor a fazer solicitações HTTP para um domínio arbitrário** escolhido pelo 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:
Normalmente, você descobrirá que o SSRF só funciona em **certos domínios ou URLs na lista de permissões**. Na página a seguir, você encontrará uma **compilação de técnicas para tentar burlar essa lista de permissões**:
Se o servidor estiver corretamente protegido, você poderá **burlar todas as restrições explorando um redirecionamento aberto dentro da página da web**. Como a página da web permitirá **SSRF para o mesmo domínio** e provavelmente **seguirá redirecionamentos**, você pode explorar o **redirecionamento aberto para fazer com que o servidor acesse qualquer recurso interno**.\
Leia mais aqui: [https://portswigger.net/web-security/ssrf](https://portswigger.net/web-security/ssrf)
Protocolo de Acesso a Diretório Leve. É um protocolo de aplicação usado em uma rede IP para gerenciar e acessar o serviço de informações de diretório distribuído.
Usando esse protocolo, você pode especificar o **IP, porta e bytes** que deseja que o servidor **envie**. Em seguida, você pode basicamente explorar um SSRF para **comunicar-se com qualquer servidor TCP** (mas você precisa saber como falar com o serviço primeiro).\
Felizmente, você pode usar o [Gopherus](https://github.com/tarunkant/Gopherus) para criar payloads para vários serviços. Além disso, o [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) pode ser usado para criar payloads _gopher_ para serviços _Java RMI_.
O Gopher HTTP é uma técnica de ataque que explora vulnerabilidades de SSRF (Server-Side Request Forgery) para enviar solicitações HTTP a partir do servidor alvo. Essa técnica permite que um invasor acesse recursos internos da rede, como arquivos, serviços e APIs, através do servidor comprometido.
O SSRF ocorre quando um aplicativo web permite que o usuário especifique uma URL para fazer uma solicitação HTTP. No entanto, o aplicativo não valida adequadamente a URL fornecida e permite que o usuário especifique URLs que apontam para recursos internos da rede. Isso pode ser explorado pelo invasor para enviar solicitações HTTP para esses recursos internos.
O Gopher HTTP aproveita o protocolo Gopher, que é um protocolo de transferência de documentos mais antigo que o HTTP. O invasor pode criar uma URL Gopher que aponta para um recurso interno da rede e, em seguida, enviar essa URL para o servidor alvo através da vulnerabilidade de SSRF. O servidor, ao processar a solicitação, fará uma solicitação HTTP para a URL Gopher fornecida pelo invasor, permitindo assim o acesso aos recursos internos.
Para mitigar o risco de ataques de SSRF, é importante implementar uma validação adequada das URLs fornecidas pelos usuários. Isso inclui a verificação do esquema da URL (por exemplo, permitindo apenas URLs HTTP ou HTTPS), a restrição de domínios permitidos e a utilização de listas brancas de IPs. Além disso, é recomendado restringir o acesso a recursos internos da rede e limitar as permissões do servidor comprometido.
Se o SSRF for executado pelo **curl**, o curl possui um recurso chamado [**URL globbing**](https://everything.curl.dev/cmdline/globbing) que pode ser útil para contornar WAFs. Por exemplo, neste [**writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-easylfi), você pode encontrar este exemplo para uma **travessia de caminho via protocolo `file`**:
Algumas aplicações utilizam software de análise do lado do servidor que rastreia visitantes. Esse software geralmente registra o cabeçalho Referrer nas solicitações, pois isso é de particular interesse para rastrear links de entrada. Muitas vezes, o software de análise realmente visita qualquer URL de terceiros que aparece no cabeçalho Referrer. Isso é feito para analisar o conteúdo dos sites de referência, incluindo o texto âncora usado nos links de entrada. Como resultado, o cabeçalho Referer muitas vezes representa uma superfície de ataque frutífera para vulnerabilidades SSRF.\
Para descobrir esse tipo de vulnerabilidade "oculta", você pode usar o plugin "**Collaborator Everywhere**" do Burp.
Com essa configuração insegura, podemos **explorar a vulnerabilidade SSRF simplesmente especificando o IP ou nome de domínio desejado no campo SNI**. Por exemplo, o seguinte comando forçaria o Nginx a se conectar a _internal.host.com_:
Se a página da web estiver criando automaticamente um PDF com algumas informações fornecidas por você, você pode **inserir algum JS que será executado pelo próprio criador de PDF** (o servidor) ao criar 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 estão 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 facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
Se você está tendo **problemas** para **extrair conteúdo de um IP local** por causa do **CORS/SOP**, o **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). Ele inclui os componentes necessários para vincular o endereço IP do servidor de ataque ao nome DNS da máquina de destino e para servir payloads de ataque para explorar software vulnerável na máquina de destino.
4. O **domínio** iniciará um **loop infinito** de redirecionamentos contra **ele mesmo**. O objetivo disso é fazer com que o usuário/bot acesse o domínio até que ele faça **novamente** uma **solicitação DNS** do domínio.
5. Na solicitação DNS, é fornecido um endereço IP **privado****agora** (por exemplo, 127.0.0.1)
6. O usuário/bot tentará **restabelecer a conexão TLS** e, para fazer isso, ele enviará o **Session ID/Ticket ID** (onde o **payload** do atacante estava contido). Parabéns, você conseguiu fazer com que o **usuário/bot atacasse a si mesmo**.
Observe que, durante esse ataque, se você quiser atacar localhost:11211 (_memcache_), você precisa fazer com que a vítima estabeleça a conexão inicial com www.attacker.com:11211 (a **porta deve ser sempre a mesma**).\
Para **realizar esse ataque, você pode usar a ferramenta**: [https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
Para **mais informações**, confira a palestra onde esse 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. Portanto, é mais difícil de explorar, pois você só poderá explorar vulnerabilidades conhecidas.
**Verificando o tempo** das respostas do servidor, pode ser **possível saber se um recurso existe ou não** (talvez leve mais tempo para acessar um recurso existente do que acessar um que não existe)
Se você encontrar uma vulnerabilidade de SSRF em uma máquina em execução em um ambiente de nuvem, poderá obter informações interessantes sobre o ambiente de nuvem e até mesmo credenciais:
_remote-method-guesser_ é um scanner de vulnerabilidades do _Java RMI_ que suporta operações de ataque para a maioria das vulnerabilidades comuns do _Java RMI_. 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 multithreaded projetado para direcionar o tráfego HTTP do cliente por meio de servidores HTTP vulneráveis a Server-Side Request Forgery (SSRF).
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você 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)!
* Obtenha o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo 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 o** [**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** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\