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.

baca juga : CSV Injection: Bagaimana File Excel Sederhana Bisa Digunakan untuk Menjalankan Perintah Berbahaya di Komputer Anda


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.