Directory-overgang

Directory-overgang

Verander de bestandsnaam, klim uit de map, lees wat dan ook.

Wat is Directory-overgang?

Een handler voegt een bestandsnaam uit het verzoek samen in een vaste map en leest alles waarnaar wordt verwezen. Voeg een paar ../ -segmenten toe en het resultaat bevindt zich buiten de map die de ontwikkelaar in gedachten had. U ruilt een factuurnaam voor ../../../etc/passwd op een factureringseindpunt en krijgt het systeemaccountbestand terug. Vervolgens repareert u het: besluit naar de canonieke vorm met path.resolve en bevestig dat het resultaat nog steeds in de bedoelde map staat voordat u een byte leest. Het verwijderen van .. uit de string is niet dezelfde controle.

Wat je leert in Directory-overgang

Directory-overgang — Trainingsstappen

  1. Zoek de downloadfunctie

    Halvora is een factureringsplatform en elke klant kan zijn eigen facturen downloaden vanaf een zelfbedieningspagina. Bob heeft een gewone Halvora-rekening. Hij opent de functie voor het downloaden van facturen om te zien hoe deze zich gedraagt ​​voordat hij deze aanraakt.

  2. Download een normale factuur

    Kijk eerst hoe de functie zich normaal gedraagt. Bob downloadt een van zijn eigen facturen. Het bestand komt terecht in zijn downloads en het netwerkpaneel van de browser registreert het verzoek dat de pagina heeft verzonden, precies wat een ontwikkelaar ziet in DevTools.

  3. De bestandsnaam is slechts een parameter

    De factuur kwam terug. Eén detail in het verzoek vertelt Bob hoe hij het moet aanvallen.

  4. Knoei met het verzoek en verzend het opnieuw

    Bob had de downloadknop nooit nodig. Hij bewerkt het vastgelegde verzoek rechtstreeks, waarbij hij de factuurnaam verwisselt voor een pad dat omhoog klimt vanaf de plek waar de facturen zijn opgeslagen. Elke ../ gaat één map omhoog; genoeg bereiken de root van het bestandssysteem, en van daaruit is etc/passwd het accountbestand dat elke Linux-box heeft.

  5. Het bestand komt terug

    Het antwoord is geen factuur. Het is het accountbestand van de server, dat van de schijf wordt gelezen en wordt teruggestuurd via dezelfde download die de functie aan elke klant biedt.

  6. Kennis check

    Je hebt zojuist gezien hoe een gemanipuleerd downloadverzoek het accountbestand van de server retourneerde. Leg vast waarom.

  7. De inbreukwaarschuwing

    U bent eigenaar van de Halvora-downloadservice voor facturen. Van de ene op de andere dag signaleerde monitoring van gegevensverlies dat het eindpunt de inhoud van een serverbestand retourneerde in plaats van een pdf. Security Operations heeft u de details per e-mail gestuurd.

  8. Open de downloadhandler

    Open de downloadhandler en kijk hoe deze de bestandsnaam omzet in een bestand op schijf.

  9. Zoek de fout

    De bestandsnaam wordt samengevoegd in de factuurdirectory en direct gelezen. Niets beperkt het pad, dus een waarde met ../ -segmenten reikt tot buiten de map.

  10. Kennis check

    Voordat u de geleider aanraakt, moet u duidelijk maken waarom de snelle patch niet de oplossing is.

Dekking van beveiligingsframeworks

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