Pengantar
Keamanan aplikasi web tidak hanya bergantung pada enkripsi atau firewall. Kesalahan kecil dalam pengelolaan file dan input pengguna dapat membuka celah serius yang dikenal sebagai Directory Traversal. Serangan ini memungkinkan penyerang mengakses file atau direktori di luar folder yang seharusnya dibatasi oleh sistem.
Directory Traversal sering kali terjadi karena aplikasi tidak memvalidasi input pengguna dengan benar. Dampaknya bisa sangat serius, mulai dari kebocoran file konfigurasi hingga pencurian kredensial sensitif yang tersimpan di server.
Apa Itu Directory Traversal?
Directory Traversal adalah teknik eksploitasi yang memungkinkan penyerang mengakses file dan direktori di luar jalur yang diizinkan oleh aplikasi. Serangan ini juga dikenal dengan istilah Path Traversal.
Menurut OWASP (Open Web Application Security Project), Directory Traversal terjadi ketika aplikasi menggunakan input pengguna untuk mengakses file tanpa melakukan validasi atau sanitasi yang memadai (dikutip dari owasp).
Serangan ini biasanya memanfaatkan karakter seperti:
../
yang digunakan dalam sistem file untuk naik satu level direktori.
baca juga : Business Email Compromise (BEC): Modus Penipuan Email yang Menguras Keuangan Perusahaan
Bagaimana Cara Kerja Directory Traversal?
1. Aplikasi Menggunakan Input untuk Akses File
Misalnya, sebuah aplikasi memiliki parameter URL seperti:
https://example.com/download?file=report.pdf
Jika aplikasi tidak memvalidasi parameter file, maka penyerang dapat mencoba:
https://example.com/download?file=../../etc/passwd
2. Eksploitasi Struktur Direktori
Dengan menggunakan kombinasi ../, penyerang dapat menavigasi struktur folder server.
3. Akses File Sensitif
Jika berhasil, penyerang dapat membaca file seperti:
-
File konfigurasi
-
Database credentials
-
File sistem operasi
PortSwigger menjelaskan bahwa eksploitasi path traversal dapat menyebabkan kebocoran informasi sensitif atau bahkan eksekusi kode dalam kondisi tertentu (dikutip dari PortSwigger).
Dampak Serangan Directory Traversal
Kebocoran Data Sensitif
File konfigurasi sering menyimpan username dan password database.
Pengungkapan Struktur Sistem
Informasi struktur direktori dapat membantu penyerang merencanakan serangan lanjutan.
Potensi Remote Code Execution
Jika file tertentu dapat dimodifikasi atau diunggah, risiko bisa meningkat menjadi eksekusi kode jarak jauh.
baca juga : Timing Attack: Mengungkap Rahasia Sistem Hanya dari Selisih Waktu Eksekusi
Contoh Skenario Serangan
Sistem Unduh File Tanpa Validasi
Aplikasi memungkinkan pengguna mengunduh dokumen berdasarkan nama file yang dimasukkan.
Tanpa validasi, penyerang dapat mencoba berbagai kombinasi path untuk mencari file sensitif.
Kombinasi Encoding
Penyerang juga dapat menggunakan encoding seperti:
..%2f
untuk melewati filter sederhana yang hanya memblokir ../.
Cara Mencegah Directory Traversal
Validasi dan Sanitasi Input
Pastikan input pengguna tidak mengandung karakter traversal seperti ../.
Gunakan Whitelist
Batasi akses hanya pada nama file atau direktori tertentu yang sudah ditentukan.
Normalisasi Path
Gunakan fungsi bawaan bahasa pemrograman untuk memastikan path tetap berada dalam direktori yang diizinkan.
Konfigurasi Hak Akses Minimum
Pastikan server tidak memberikan akses baca ke file sensitif yang tidak diperlukan aplikasi.
Mengapa Directory Traversal Masih Terjadi?
Meskipun termasuk kerentanan lama, Directory Traversal masih sering ditemukan karena:
-
Validasi input yang kurang ketat
-
Kurangnya secure coding practice
-
Ketergantungan pada filter sederhana
-
Kompleksitas sistem berbasis file
Dalam banyak kasus, celah ini muncul karena asumsi bahwa pengguna hanya akan memasukkan nama file yang valid.
Kesimpulan
Directory Traversal adalah kerentanan keamanan yang memungkinkan penyerang mengakses file di luar direktori yang diizinkan. Dengan memanfaatkan karakter seperti ../, pelaku dapat menavigasi struktur sistem dan membaca file sensitif.
Untuk mencegah risiko ini, pengembang harus menerapkan validasi input yang ketat, menggunakan whitelist file, serta membatasi hak akses sistem. Keamanan aplikasi web bukan hanya soal fitur, tetapi juga bagaimana data dan file dikelola secara aman.









