Directory Traversal

Andre betegnelser

Path Traversal, File Path Manipulation, Local File Inclusion (LFI), Arbitrary File Read, Information Disclosure

AI

Automatisering

Branding

Design

Marketing

Procesoptimering

SaaS

SEO

Sikkerhed

UX

Webudvikling

Directory Traversal er en sårbarhed, hvor en angriber kan tilgå filer og mapper uden for det tiltænkte bibliotek ved at manipulere filstier. Angrebet bruges til at læse, og i nogle tilfælde skrive eller eksekvere, følsomme filer på serveren.

Det er et klassisk input‑valideringsproblem med høj impact.

Hvad er Directory Traversal?

Directory traversal opstår, når brugerinput indgår direkte i filsystem‑operationer uden korrekt validering eller normalisering.

Typisk udnyttes sekvenser som:

  • ../

  • ..\\

  • URL‑encodede varianter (%2e%2e%2f)

  • Dobbelt encoding

  • Unicode‑varianter

Formålet er at “traversere” opad i mappestrukturen og bryde den logiske sandbox.

Hvordan opstår problemet?

Sårbarheden ses ofte i:

  • Fil-download endpoints

  • Billed‑ eller dokumentvisning

  • Log‑viewers

  • Backup‑ og export‑funktioner

  • Legacy PHP‑ og Java‑applikationer

Typiske årsager:

  • Blind tillid til brugerinput

  • Manglende path normalisering

  • String‑baseret validering i stedet for canonical paths

  • Manglende sandboxing på OS‑niveau

Hvorfor er Directory Traversal alvorligt?

Sikkerhed

  • Læsning af konfigurationsfiler (.env, web.config)

  • Eksponering af credentials og API‑nøgler

  • Læk af kildekode

  • Mulighed for privilege escalation

Forretning

  • Databrud

  • Total kompromittering af applikationen

  • Driftsnedbrud

  • Reputationsskade

Compliance

  • Overtrædelse af GDPR og databeskyttelseskrav

  • Alvorlig audit finding

Typiske angrebsscenarier

Fil-download

/download?file=../../../../etc/passwd

Log-viewer

/logs?name=../../storage/logs/laravel.log

Med dobbelt encoding

..%252f..%252f.env

Typisk angrebsflow

  1. Identificer endpoint med filsti som input

  2. Test for traversal‑sekvenser

  3. Bypass simple filters (encoding)

  4. Læs følsomme filer

  5. Eskaler til fuldt kompromis

Directory traversal er ofte første skridt mod LFI (Local File Inclusion) eller RCE (Remote Code Execution).

Hvad beskytter ikke mod Directory Traversal?

  • Regex‑baseret filtrering alene

  • Blacklists af ../

  • Frontend‑validering

  • Skjulte inputfelter

Angriberen tilpasser payloads.

Best Practice – forebyggelse

Canonical paths

  • Resolve absolut sti server‑side

  • Verificer at stien starter i tilladt base‑directory

Whitelisting

  • Brug faste fil‑ID’er i stedet for filnavne

  • Map ID → sti internt

Least privilege

  • Webserveren må kun have adgang til nødvendige mapper

  • Separate runtime‑, config‑ og data‑directories

OS‑niveau beskyttelse

  • Chroot / containers

  • AppArmor / SELinux

  • Read‑only mounts hvor muligt

Framework‑funktioner

  • Brug indbyggede storage‑abstraktioner

  • Undgå direkte filsystem‑kald med brugerinput

Forretningsmæssig realitet

Directory traversal er en gammel sårbarhed, men:

  • Den findes stadig i produktion

  • Den er let at automatisere

  • Konsekvensen er ofte total kompromittering

Små shortcuts i filhåndtering giver store risici.

Udfordringer og løsninger

Udfordring: Legacy‑kode med direkte filstier

Løsning: Introducer et isolerende service‑lag

Udfordring: Performance‑hensyn

Løsning: Canonical path‑checks er billige

Udfordring: “Det er kun interne filer”

Løsning: Antag altid ekstern misbrug

Opsummering

Directory traversal handler om grænser.

Hvis brugeren kan bestemme filstien, har du allerede tabt kontrollen.

Sikker filhåndtering kræver:

  • Validering

  • Isolering

  • Princip of least privilege

Relaterede begreber

Book et møde

Hvornår?

Vælg dato