Path Traversal adalah salah satu jenis kerentanan keamanan pada aplikasi web, di mana seorang penyerang dapat mengakses file atau direktori yang berada di luar root direktori aplikasi. Dengan mengeksploitasi kerentanan ini, penyerang dapat membaca file sensitif di server seperti konfigurasi sistem, file log, atau file kredensial.
Artikel ini akan membahas langkah-langkah mendeteksi kerentanan path traversal pada sebuah website. Ingat, segala aktivitas uji coba harus dilakukan secara legal dengan izin pemilik website.
Apa Itu Path Traversal?
Path traversal terjadi ketika input pengguna yang digunakan untuk mengakses file tidak divalidasi dengan baik. Sebagai contoh, berikut adalah URL yang rentan terhadap path traversal:
http://example.com/index.php?file=about.html
Seorang penyerang dapat mencoba mengganti nilai file
dengan path relatif:
http://example.com/index.php?file=../../../../etc/passwd
Jika aplikasi tidak memvalidasi input, file /etc/passwd
akan terbuka.
Langkah-Langkah Mencari Kerentanan Path Traversal
1. Identifikasi Parameter File
Cari parameter yang berhubungan dengan file, seperti:
?file=
?document=
?path=
?template=
Parameter ini biasanya digunakan untuk memuat file dinamis dari server.
2. Uji Payload Path Traversal
Uji parameter dengan payload path traversal untuk mencoba mengakses file sensitif. Contoh payload:
../../../../etc/passwd
../../../../windows/win.ini
../../../../var/log/apache2/access.log
Coba masukkan payload ini ke URL:
http://example.com/index.php?file=../../../../etc/passwd
Jika file sensitif terlihat, maka parameter tersebut rentan.
3. Gunakan Alat Pendukung
Berikut adalah beberapa alat yang bisa digunakan:
Burp Suite: Untuk memanipulasi dan mengotomatisasi pengujian parameter.
OWASP ZAP: Untuk melakukan scanning terhadap kerentanan path traversal.
Ffuf atau WFuzz: Untuk melakukan brute-force payload secara otomatis.
4. Perhatikan Respon Server
Cek apakah server memberikan respon yang menunjukkan adanya file. Beberapa tanda umum:
Isi file yang ditampilkan di halaman web.
Pesan error seperti
File not found
atauNo such file or directory
, yang menunjukkan bahwa server mencoba mengakses path tersebut.
5. Payload Encoding
Jika input langsung difilter, coba gunakan teknik encoding seperti:
URL Encoding: Mengubah
../
menjadi%2e%2e%2f
.Double Encoding: Mengubah
../
menjadi%252e%252e%252f
.Bypass Filter: Menggunakan karakter lain seperti
..\
atau..%00/
.
6. Targetkan File Sensitif
Beberapa file yang sering dijadikan target:
Linux:
/etc/passwd
/etc/shadow
/var/log/apache2/access.log
Windows:
C:\windows\win.ini
C:\windows\System32\drivers\etc\hosts
7. Perhatikan File Log
Seringkali, file log web server berisi informasi penting yang dapat digunakan untuk eksploitasi lebih lanjut. Contohnya:
../../../../var/log/apache2/access.log
Pencegahan Path Traversal
Validasi Input
Gunakan whitelist untuk membatasi file yang dapat diakses.
Batasi input hanya pada direktori yang diizinkan.
Sanitasi Input
Hapus karakter seperti
../
atau gunakan fungsi keamanan sepertirealpath()
pada PHP untuk memvalidasi path.
Konfigurasi Server
Gunakan mekanisme sandbox untuk membatasi akses aplikasi hanya pada direktori tertentu.
Pastikan izin file dan direktori telah dikonfigurasi dengan baik.
Penutup
Kerentanan path traversal adalah salah satu jenis serangan yang berbahaya jika ditemukan pada aplikasi web. Dengan memahami langkah-langkah di atas, Anda dapat mencari dan mengidentifikasi potensi kerentanan ini dengan lebih efektif. Selalu pastikan aktivitas pengujian dilakukan secara etis dan hanya pada sistem yang Anda memiliki izin untuk mengujinya.
0 Comments
Post a Comment