SSRF quando l'input dell'utente viene aggiunto a hostname

1

È considerata una vulnerabilità SSRF (o è pericolosa per nulla) se il back-end di un'applicazione recupera un URL che è in qualche modo basato sull'input dell'utente, in un modo simile a questo

get("https://thehostname.com/a-directory/" + userinput)

Quindi, poiché il nome host è hardcoded prima dell'input dell'utente, non dovrebbe essere possibile eseguire la scansione della rete interna o altro, giusto?

Senza una vulnerabilità di reindirizzamento aperto in https://thehostname.com/* , non vedo come potresti trarne qualcosa.

Modifica: nello scenario specifico a cui sto facendo questa domanda, il server risponde solo con un vero / falso / errore, indicando se il tipo di contenuto della risposta http è un pdf, o se non è riuscito a recuperare la pagina (404 o l'host è inattivo).

    
posta user149925 06.08.2018 - 20:01
fonte

1 risposta

2

Come menzionato nei commenti, sanitizza sempre l'input dell'utente. Presuma sempre che l'utente potrebbe essere malintenzionato. Anche se lo snippet non sembra essere direttamente sfruttabile, dovresti considerare anche che non tutti i parser dell'URL si comportano allo stesso modo e la libreria che stai utilizzando potrebbe influenzare il tipo di sfruttamento che potresti essere vulnerabile a.

In un mondo perfetto, potresti essere sicuro, ma è sempre bene fare controlli aggiuntivi solo per essere sicuro. Ad esempio, se si desidera che gli utenti accedano a determinate pagine, è necessario impostare una lista bianca. Se non devono accedere alle sottodirectory, assicurarsi che non vi siano barre nell'URL (codificate o altrimenti).

    
risposta data 07.08.2018 - 19:47
fonte

Leggi altre domande sui tag