Path traversal

circle-exclamation

Understanding Path Traversal

What is Path Traversal?

Path traversal (also known as directory traversal) is a security vulnerability that allows attackers to access files and directories outside of the intended directory structure. This occurs when applications use user-supplied input to construct file paths without proper validation or sanitization.

Vulnerable Code Example

// PHP vulnerable file reading
$file = $_GET['file'];
$content = file_get_contents('/var/www/html/uploads/' . $file);
echo $content;

Normal Request:

  • URL: GET /view.php?file=document.pdf

  • Path: /var/www/html/uploads/document.pdf

Malicious Request:

  • URL: GET /view.php?file=../../../etc/passwd

  • Path: /var/www/html/uploads/../../../etc/passwd/etc/passwd

How Path Traversal Works

Path traversal exploits the way operating systems handle relative path references. By using special directory references like ../ (parent directory) or absolute paths, attackers can navigate outside the intended directory structure to access sensitive files.

Common Path Traversal Sequences

Unix/Linux Systems:

  • ../ - Parent directory

  • ./ - Current directory

  • / - Root directory

  • ~ - Home directory

  • // - Alternative root (some systems)

Windows Systems:

  • ..\ - Parent directory

  • .\ - Current directory

  • C:\ - Drive root

  • \\ - UNC path prefix

  • / - Also works on Windows

Impact and Consequences

  • Sensitive File Access - Reading configuration files, passwords, keys

  • Source Code Disclosure - Accessing application source code

  • System Information Gathering - Reading system files, logs

  • Credential Harvesting - Accessing password files, tokens

  • Remote Code Execution - In combination with file upload vulnerabilities

  • Denial of Service - Accessing large files or system resources

Common Vulnerable Scenarios

File Download/View Functionality

Document Viewers:

Image Galleries:

Log File Viewers:

File Upload Paths

Upload Directory Specification:

Template File Access:

Include/Require Operations

Dynamic File Inclusion:

Configuration File Loading:


Basic Path Traversal Techniques

Simple Directory Traversal

Basic Dot-Dot-Slash

Linux/Unix Traversal:

Windows Traversal:

Absolute Path Access

Direct Absolute Paths:

Mixed Traversal Techniques

Combining Relative and Absolute:

URL Encoding Bypass

Single URL Encoding

Basic URL Encoding:

Double URL Encoding

Double-Encoded Sequences:

Unicode and UTF-8 Encoding

Unicode Variations:

Filter Evasion Techniques

Null Byte Injection

Null Byte Termination:

Case Variation

Mixed Case Paths:

Alternative Separators

Different Path Separators:

Character Substitution

Alternative Character Representations:


Advanced Path Traversal Techniques

Deep Directory Traversal

Excessive Dot-Dot Sequences

Over-Traversal:

Nested Path Construction

Complex Path Building:

Application-Specific Bypasses

Framework-Specific Techniques

PHP Path Traversal:

Java Path Traversal:

ASP.NET Path Traversal:

Operating System Specific

Linux-Specific Paths:

Windows-Specific Paths:

Filter Bypass Combinations

Multi-Encoding Techniques

Layered Encoding:

Whitespace and Special Characters

Whitespace Injection:

Path Normalization Bypass

Path Segment Manipulation:


Platform-Specific Exploitation

Linux/Unix Systems

System File Access

Password and Authentication:

System Configuration:

Log Files:

Application Files

Web Server Configuration:

Database Configuration:

Windows Systems

System File Access

System Configuration:

User Data:

IIS and ASP.NET Files

IIS Configuration:

Windows Services:


Web Application Context Exploitation

File Download Vulnerabilities

Document Management Systems

Download Endpoint Exploitation:

PDF/Document Viewers:

Image and Media Galleries

Image Gallery Exploitation:

File Upload Vulnerabilities

Upload Path Manipulation

Directory Traversal in Upload:

ZIP File Extraction (Zip Slip):

Template and Include Vulnerabilities

Template Engine Exploitation

Template Path Traversal:

Server-Side Include (SSI):


Advanced Exploitation Scenarios

Chained Attacks

Path Traversal to RCE

File Upload + Path Traversal:

Log Poisoning + Path Traversal:

Information Gathering Chain

Configuration Discovery:

Container and Cloud Exploitation

Docker Container Escape

Container File Access:

Kubernetes Pod Escape

Service Account Access:

Cloud Metadata Access

AWS Instance Metadata:


Language and Framework Specific

PHP Applications

PHP-Specific Vulnerabilities

PHP Stream Wrappers:

Include/Require Exploitation:

PHP Configuration Files

Common PHP Targets:

Java Applications

Java-Specific Paths

Java Application Files:

Class Path Traversal:

Python Applications

Python-Specific Files

Python Application Files:

Python Virtual Environments

Virtual Environment Access:

Node.js Applications

Node.js Specific Files

Node.js Configuration:

Process and Environment:

Last updated

Was this helpful?