Attraversamento delle directory

Attraversamento delle directory

Cambia il nome del file, esci dalla cartella, leggi qualsiasi cosa.

Cos’è Attraversamento delle directory?

Un gestore unisce un nome file dalla richiesta in una directory fissa e legge tutto ciò in cui si risolve. Aggiungi alcuni segmenti ../ e il risultato si trova all'esterno della cartella che lo sviluppatore aveva in mente. Scambiarai il nome di una fattura con ../../../etc/passwd su un endpoint di fatturazione e recupererai il file dell'account di sistema. Quindi risolvi il problema: risolvi il problema nella forma canonica con path.resolve e conferma che il risultato è ancora all'interno della cartella prevista prima di leggere un byte. Rimuovere .. dalla stringa non è lo stesso controllo.

Cosa imparerai in Attraversamento delle directory

Attraversamento delle directory — Fasi della formazione

  1. Trova la funzione di download

    Halvora è una piattaforma di fatturazione e ogni cliente può scaricare le proprie fatture da una pagina self-service. Bob ha un conto Halvora normale. Apre la funzione di download delle fatture per vedere come si comporta prima di toccarla.

  2. Scarica una fattura normale

    Innanzitutto, osserva la funzione comportarsi normalmente. Bob scarica una delle sue fatture. Il file arriva nei suoi download e il pannello Rete del browser registra la richiesta inviata dalla pagina, esattamente ciò che uno sviluppatore vede in DevTools.

  3. Il nome del file è solo un parametro

    La fattura è tornata. Un dettaglio nella richiesta dice a Bob come attaccarlo.

  4. Manomettere la richiesta e inviarla nuovamente

    Bob non ha mai avuto bisogno del pulsante di download. Modifica direttamente la richiesta acquisita, sostituendo il nome della fattura con un percorso che esce dal punto in cui sono archiviate le fatture. Ogni ../ avanza di una directory; un numero sufficiente di essi raggiunge la radice del filesystem e da lì etc/passwd è il file dell'account di cui dispone ogni sistema Linux.

  5. Il file ritorna

    La risposta non è una fattura. Si tratta del file dell'account del server, letto dal disco e restituito tramite lo stesso download offerto dalla funzionalità a ogni cliente.

  6. Verifica della conoscenza

    Hai appena visto una richiesta di download manomessa restituire il file dell'account del server. Blocca il perché.

  7. L'avviso di violazione

    Possiedi il servizio di download delle fatture di Halvora. Durante la notte, il monitoraggio della perdita di dati ha contrassegnato l'endpoint che restituiva il contenuto di un file del server al posto di un PDF. Le operazioni di sicurezza ti hanno inviato via email i dettagli.

  8. Apri il gestore dei download

    Apri il gestore dei download e osserva come trasforma il nome del file in un file su disco.

  9. Individua il difetto

    Il nome del file viene concatenato nella directory delle fatture e letto direttamente. Niente vincola il percorso, quindi un valore con segmenti ../ raggiunge l'esterno della cartella.

  10. Verifica della conoscenza

    Prima di toccare il gestore, chiarisci perché la patch rapida non è la soluzione.

Copertura dei framework di sicurezza

OWASP Top 10

  • A01:2025 Broken Access Control
  • A01:2021 Broken Access Control

CWE

  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security