Friday, 24 January 2025

Cara Mencari Kerentanan Path Traversal pada Website

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 atau No 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 seperti realpath() 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