Path Disclosure senza capacità di leggere i file

6

Quindi sono un pentester e ho scoperto "feature" su un server che mi permette, essenzialmente, di attraversare ciecamente i file di un server web (senza eseguirli o leggerli). Il problema è che non riesco a capire un modo per dimostrarlo come una vulnerabilità. La domanda generale è: quali file, per la loro natura di conoscenza del loro nome, rappresentano una vulnerabilità (se esiste)?

Nel mio scenario specifico, il sistema operativo è Windows e posso fare una richiesta come questa.

http://example.com?site=file://C:\Users\Administrator

Il server restituirà una pagina che indica che non può caricare questo file, mentre se faccio una richiesta come questa:

http://example.com?site=file://C:\Users\namethatwouldneverexist , mi dirà che il file non può essere trovato.

In sostanza, il server controlla se il file esiste prima di controllare se ho le autorizzazioni per leggerlo.

Ecco alcune cose che ho provato:

  • ../../../ (etc) Questo si traduce in una directory valida, il che significa che mi dirà che è vietato. Non utile.
  • %appdata% Questo si traduce in un diverso tipo di errore, l'applicazione non ama i segni di percentuale nel percorso, quindi non lo espande per me.
  • C:\Windows\system32\ping.exe 8.8.8.8 Questo comporterà un errore "non trovato", in quanto non passa i parametri (o esegue il file).
  • file://x questo esporrà il pwd a me, ma questo non è particolarmente interessante nel mio scenario.

Sono stato in grado di enumerare le unità di rete mappate, ma questo non è particolarmente utile. Posso anche essenzialmente effettuare una scansione del server dalla rete locale per esporre porte private, ma per il momento sono più interessato al filesystem.

Essenzialmente, la mia domanda si riduce a: la capacità di identificare positivamente un file esistente su un server costituisce una vulnerabilità e, in caso affermativo, come? Ovviamente, se hai un'idea per trasformare questo in RCE, allora va bene anche così!

posta Gray 20.01.2016 - 17:01
fonte

2 risposte

4

Ciò che descrivi può essere definito una vulnerabilità legata all'intercettazione di informazioni. È possibile utilizzare questa tecnica come metodo di rilevamento delle impronte digitali (cercando specifici file del sistema operativo, cartelle e file comuni del framework Web, ecc.) E potrebbe rivelarsi utile per identificare una versione di qualcosa sul sistema che è soggetta a una vulnerabilità separata. Come hai indicato che si tratta di un server web, potrebbe essere d'aiuto nell'esplorare le vulnerabilità delle applicazioni Web come il caricamento arbitrario di file (se esiste la funzionalità) o in altro modo.

    
risposta data 20.01.2016 - 17:51
fonte
1

Potresti prendere i file importanti come suggerito. Ad esempio, i file web.config o altri file di configurazione dell'applicazione potrebbero contenere informazioni sensibili come le password.

Potresti anche provare ad afferrare i file SAM e SYSTEM - l'unico problema è che quasi sicuramente saranno bloccati. In tal caso, puoi prendere i backup dalla cartella repair . Vedi questa risposta . È quindi possibile eseguire un attacco di cracking offline contro di loro al fine di ottenere le credenziali dell'account Windows.

    
risposta data 21.01.2016 - 09:20
fonte