Directory Traversal Attack: History, Exploitation, Detection and Prevention
What is the directory traversal?
The directory traversal, also known as the path traversal, is a web safety vulnerability that allows an attacker to reach files and directors stored outside the web root folder. "Dot-Dot-Slash (..)" can cross the attacker directions by manipulating the variables with sequences and their variations, and can access the restricted files-as the application source code, configuration files, or system password files.
Example:
Instead of accessing:
arduino
https://example.com/view?file=about.html
an attacker might try:
bash
https://example.com/view?file=../../../etc/passwd
This could result in access to /etc/passwd on Unix-based systems if the application doesn't sanitize input correctly.
History of directory
The origin of the directory traversal weaknesses goes back to the early days of web development when developers user rely much on the dynamic file path generation based on the input. The early CGI scripts and PHP applications were particularly weak.
Major milestones:
- 1990s: The initial web server lacked basic input verification, and the CGI script was an easy goal.
- 2000: Unicode directory traversal vulgarity in Microsoft IIS 4.0 and 5.0 allowed the attackers to execute the command on the server using encoded characters.
- 2008-2015: A series of open-sources CMS platforms (such as Zoomla, WordPress and Druple) faced the directory traversal exploits.
- 2019: Fortnite's user accounts were improperly handled due to URL, which was part of the surface of a broad attack.
- 2021+: With the rise of API and Microservis, inappropriately secure &points have made the directory traverse more fine and difficult.
How does the directory traversal work
At its core, a directory targets targets the user targets inappropriate handling of input when creating the exploitation file path.
Mechanism:
- Web applications include dynamic files based on user input.
- The input is not sanitize, allowing users to specify the relative path (eg, ../).
- The application navigates outside the intended directory and exposes sensitive system files.
Types of Traversal Patterns:
- ../../../../etc/passwd (Unix/Linux)
- ..\..\..\..\boot.ini (Windows)
- URL-encoded: %2e%2e%2f (represents ../)
- Double URL encoding: %252e%252e%252f
How to Exploit Directory Traversal
Step-by-Step Exploitation Process:
Reconnaissance: Identify parameters in the application that are used to fetch or include files.
Input Injection: Replace file names with ../ sequences.
File Discovery: Use automated tools or manual testing to access sensitive system files like:
- /etc/passwd
- /etc/shadow
- /proc/version
- C:\Windows\win.ini
- C:\boot.ini
Privilege Escalation: If sensitive credentials or config files are retrieved, further attacks (like RCE) may be possible.
Persistence: Modify config files or create backdoors if write access is achieved.
Popular Tools for Exploitation:
- Burp Suite Intruder
- DirBuster / DirSearch
- Nikto
- WFuzz
- OWASP ZAP
How to Detect Directory Traversal
Detecting a directory traversal vulnerability is crucial for both red and blue teams.
Manual Detection:
- Test URL and input fields with payloads like:
- ../etc/passwd
- ../../../../windows/win.ini
- %2e%2e%2f
- Monitor the server’s HTTP response codes:
- 200 OK = possible file access
- 403 Forbidden = restricted access
- 404 Not Found = file exists but not accessible
Automatic Identification:
- Static Application Security Testing (SAST): Tools scan source code for insecure file handling functions like
file_get_contents()
in PHP oropen()
in Python. - Dynamic App Security Testing (Dast): Scan running apps and check the URL reactions.
- Log analysis: Monitor logs for suspected file path pattern (../, %2e %2e, etc.)
- SIEM Equipment: Alert Rules can mark the efforts of unusual file path access.
Risks and Real-World Impact
Potential Damage:
- Exposure of system files (/etc/passwd, boot.ini)
- Disclosure of application source code
- Leakage of credentials/configuration
- Remote Code Execution (RCE) in chained attacks
- Full system compromise
High-Profile Incidents:
- Fortnite (2019): A flaw in the game’s login process enabled directory traversal, which could have been used to hijack player accounts.
- Microsoft IIS (2000): Unicode decoding bug allowed full server access via traversal.
Prevention of Directory Traversal
Prevention revolves around strict input validation and proper file access control.
1. Input Validation
- Whitelist filenames instead of interpreting arbitrary user input.
- Reject ../, %2e, and similar patterns from user inputs.
- Use language-specific libraries or methods that enforce safe paths.
php
// Example in PHP
$filename = basename($_GET['file']);
python
# Example in Python
import os
if os.path.isabs(user_input) or ".." in user_input:
raise Exception("Invalid path")
2. Use of Safe APIs
- Frameworks like Java’s java.nio.file.Paths.get() can be used to limit paths within a sandbox.
- Use chroot or container-based sandboxes to isolate directory access.
3. Principle of Least Privilege
- Ensure web applications run with limited OS-level privileges.
- Sensitive directories should not be accessible to web users.
4. Web Application Firewalls (WAF)
- WAFs can block suspicious path patterns automatically.
- Rule-based systems like ModSecurity can help.
5. Error Handling
- Avoid returning detailed error messages or stack traces.
- Custom 404 pages should not reveal file system structure.
Testing for Directory Traversal
If you're developing or testing applications, you can use OWASP-recommended payloads to simulate attacks.
Sample Payloads:
- ../../../../etc/passwd
- ../../../Windows/system32/drivers/etc/hosts
- %2e%2e%2f%2e%2e%2fetc%2fpasswd
Testing Frameworks:
- OWASP ZAP (Zap Attack Proxy)
- Burp Suite Professional
- Nikto for server-level scanning
- SonarQube / Checkmarx for code-level vulnerabilities
Directory Traversal in APIs and Microservices
APIs that handle file uploads, downloads, or logging are often vulnerable to traversal if not secured.
Common API Scenarios:
- Log viewers
- File download endpoints
- Configuration preview tools
Always validate file paths and consider sandboxing file access in a separate environment.
conclusion
The directory traversal is one of the most dangerous and usually exploited web weaknesses. Its simplicity makes it attractive to the attackers, and its potential effect - especially when coupled with other weaknesses such as distance code execution - is severe.
Safety Best Practice:
- Copy user inputs with allows.
- Use safe API and sandbox environment.
- Monitor and alert suspected path patterns.
- Hard the web server and deploy WAF.
Understanding the history, detection methods and prevention strategies of the directory traversal, developers and security professionals can better defend against this silent danger.
Further Reading & Tools
- OWASP Directory Traversal Cheat Sheet
- PortSwigger’s Directory Traversal Lab
- ModSecurity WAF Rules
- Burp Suite
Comments
Post a Comment