LFI - Una modifica interessante
Riepilogo
Local File Inclusion (LFI) è un tipo di vulnerabilità dell'applicazione Web che consente a un utente malintenzionato di includere ed eseguire file arbitrari sul server Web. Un utente malintenzionato può sfruttare questa vulnerabilità passando un percorso di file dannoso come parametro, che potrebbe essere un file locale sul server. Ciò può consentire all'attaccante di visualizzare informazioni riservate, come file di configurazione o credenziali utente, eseguire codice arbitrario o persino ottenere il controllo completo del server.
Descrizione
Ho trovato una vulnerabilità di inclusione di file locale (LFI) su uno dei programmi in cui sono stato in grado di scaricare il file web.xml dalla directory WEB-INF/ . Tuttavia il bug è abbastanza semplice con una piccola modifica.
Il sito Web aveva un'opzione Scarica dettagli corso in cui recuperava i dettagli del corso da un server tramite il parametro filename= , era una richiesta POST. Il sito Web era in esecuzione sul server IIS , quindi inizialmente ho pensato di scaricare alcuni file sensibili, tuttavia erano tutti limitati, ma poi ho pensato di scaricare il file web.xml che è stato scaricato correttamente. Il file scaricato aveva il nome utente e la password dell'amministratore ma non sono riuscito a trovare un portale di accesso, quindi la gravità è stata ridotta. Non ho segnalato il bug poiché l'obiettivo era OOS (Out-Of-Scope).
Come ho trovato questa vulnerabilità?
- Sono andato al sito Web dove c'era un'opzione per "Scarica i dettagli del corso"
3. Sapevo che stava usando il server IIS, quindi ho cercato il percorso di web.xml
4. Ho modificato il percorso in ?filename=/WEB-INF/web.xml
5. Quindi ho fatto clic sul pulsante e ho scaricato il file e l'ho aperto, ho ottenuto le credenziali
Perché è successo?
Secondo me,
Il sito Web non stava convalidando e disinfettando l'input dell'utente prima di elaborarlo. Tuttavia, la maggior parte dei file sensibili è stata bloccata, ma il blocco di determinati file non è la soluzione ideale dal mio punto di vista, l'input dell'utente dovrebbe essere convalidato e disinfettato prima di elaborarlo.
Impatto
L'impatto di una vulnerabilità LFI può essere grave, in quanto può portare a una completa compromissione del server web e dei suoi dati. Tuttavia, nel mio caso l'impatto era limitato al download del file web.xml poiché tutti i principali file sensibili erano limitati per il download, quindi l'impatto sarebbe stato medio.
N OTA : Se avessi trovato il pannello di login che mi da l'accesso con le credenziali ottenute allora la gravità sarebbe stata alta.
CVSS calcolato
Stringa vettoriale - CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Punteggio - 5,3 (medio)
Mitigazione
La convalida e la sanificazione dell'input devono essere eseguite se arriva un input dell'utente. Il server non deve elaborare l'input dell'utente senza convalida. La convalida e la sanificazione devono essere eseguite sia lato client che lato server. Inoltre, l'applicazione dovrebbe evitare di utilizzare l'input dell'utente per costruire percorsi di file e utilizzare invece un approccio di whitelist per specificare i percorsi di file consentiti. I firewall per applicazioni Web possono anche essere utilizzati per rilevare e bloccare i tentativi di sfruttare le vulnerabilità LFI.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































