Ho trovato una vulnerabilità path traversal che mi consente di leggere qualsiasi percorso sul server che non richiede sudo
.
Per sfruttare appieno questo aspetto, vorrei sapere quali file esistono in ogni directory in modo che io possa leggerli.
In altre parole, posso fare cat /any/path
, ma non ls /any/path
né sudo cat /any/path
. Quindi, come posso trovare quanti più file possibile a cat
(senza provare tutte le possibilità ...)
Leggendo file speciali come dev o proc, o i file presenti sulla maggior parte delle distribuzioni Linux è OK. Ad esempio, se potessi leggere locate
s /var/lib/mlocate/mlocate.db
database il problema sarebbe risolto: ma non posso perché non ho sudo
.
Se non esiste una risposta ideale che elenchi file tutti , sono interessato anche a risposte che elencano un numero elevato di file esistenti.
In questa particolare istanza, l'attraversamento avviene all'interno di una VM remota, quindi l'escalation dei privilegi di per sé non è l'obiettivo principale: ciò che mi interessa è il codice sorgente confidenziale che può essere trovato sulla VM. Ma sono molto apprezzati anche i comuni percorsi di escalation dei privilegi in quanto ci darebbero mlocate
e risolveremo il problema, oltre ad essere direttamente utili in altri sistemi.
Più precisamente, il sistema nel mio caso è un servizio Git push build analogo alle pagine GitHub / GH (supponendo che ogni generazione di Jekyll venga eseguita su VM, cosa che non so). Citando questo perché è già stato risolto dai venditori ovviamente :) Sono io che creo il repository Git: questo è il vettore di attacco, quindi leggere il repository Git non è molto interessante.