Cara Melakukan Traversal Direktori Dan Mengekstrak Informasi Sensitif


Dengan semua aplikasi web di internet saat ini terutama yang dibangun dan dikonfigurasi oleh pemula, sangat mudah untuk menemukan kerentanan. Beberapa lebih berbahaya daripada yang lain tetapi konsekuensi dari pelanggaran sekecil apa pun dapat menjadi luar biasa di tangan seorang peretas yang terampil. Directory traversal adalah serangan yang relatif sederhana tetapi dapat digunakan untuk mengekspos informasi sensitif pada server.

Aplikasi web modern dan server web biasanya mengandung sedikit informasi selain HTML standar dan CSS termasuk skrip, gambar, template, dan file konfigurasi. Sebuah server web biasanya membatasi pengguna untuk mengakses sesuatu yang lebih tinggi daripada direktori root atau akar dokumen web pada sistem file server melalui penggunaan metode otentikasi seperti daftar kontrol akses.

Serangan traversal direktori muncul ketika ada misconfigurations yang memungkinkan akses ke direktori di atas root yang memungkinkan penyerang untuk melihat atau memodifikasi file sistem. Jenis serangan ini juga dikenal sebagai jalur traversal, pendakian direktori, backtracking, atau serangan dot-dot-slash (../) karena karakter yang digunakan.

Mendaki Direktori

Kerentanan traversal direktori dapat ditemukan dengan menguji permintaan HTTP, formulir, dan cookie, tetapi cara termudah untuk melihat apakah suatu aplikasi rentan terhadap jenis serangan ini adalah dengan hanya menentukan apakah URL menggunakan kueri GET. Permintaan GET berisi parameter langsung di URL dan akan terlihat seperti ini:

http://examplesite.com/?file=index.php

Diperlukan sedikit tebakan, tetapi terkadang informasi sensitif dapat diekspos dengan memanjat direktori. Perintah cd digunakan untuk mengubah direktori dan ketika digunakan dengan dua titik ( cd .. ), hal itu berubah ke direktori induk atau 1 direktori di atas direktori saat ini.

Dengan menambahkan ../langsung ke jalur file di URL, kita dapat mencoba mengubah direktori yang lebih tinggi sebagai upaya untuk melihat file sistem dan informasi yang tidak dimaksudkan untuk menghadap ke internet. Kita dapat memulai dengan mencoba naik beberapa tingkat untuk mengakses / etc / passwd, tetapi kita dapat melihat ini melempar beberapa kesalahan:



Setelah mendaki beberapa level lagi, kami akhirnya menekan paydirt dan konten dari / etc / passwd ditampilkan kepada kami tepat di browser:



Berkas / etc / passwd berisi informasi tentang pengguna di sistem, seperti nama pengguna, pengenal, direktori home, dan informasi kata sandi (meskipun ini biasanya disetel ke x atau *, karena informasi kata sandi yang sebenarnya biasanya disimpan di tempat lain).

File lain yang menarik termasuk file / etc / group, yang berisi informasi tentang grup yang dimiliki pengguna:



File / etc / profile, yang mendefinisikan umask dan variabel default untuk pengguna:



File / etc / issue, yang berisi informasi sistem atau pesan yang akan ditampilkan saat login:



File / proc / version, yang berisi daftar versi kernel Linux yang digunakan:



File / proc / cpuinfo, yang berisi informasi CPU dan prosesor:



Dan file / proc / self / environ, yang berisi informasi tentang untaian saat ini dan variabel lingkungan tertentu:



Direktori traversal pada sistem operasi lain bekerja dengan cara yang sama tetapi ada sedikit perbedaan yang terlibat. Sebagai contoh bahwa Windows menggunakan karakter backslash sebagai pemisah direktori dan direktori root adalah huruf drive (sering C: \). Beberapa file penting yang harus dicari di Windows adalah:

C: \ Windows \ repair \ systemC: \ Windows \ repair \ SAMC: \ Windows \ win.iniC: \ boot.iniC: \ Windows \ system32 \ config \ AppEvent.Evt

Tentu saja ada lebih banyak file yang dapat menghasilkan hal-hal menarik, jadi jika akses tingkat sistem tercapai akan lebih bijaksana untuk menghabiskan waktu mencari informasi sensitif.

Encoding & Bypassing File Restrictions

Dalam situasi tertentu seperti ketika aplikasi web memfilter karakter khusus, penyandian digunakan untuk menghindari validasi masukan agar serangan berhasil. Kami telah melihat ini digunakan dalam serangan lain seperti injeksi SQL tetapi jenis teknik yang sama dapat diterapkan di sini untuk direktori traversal juga.

2 metode utama pengkodean yang biasanya digunakan adalah pengkodean URL dan pengkodean Unicode. Pada sistem Unix yang biasanya menggunakan garis miring ke depan, pengkodean URL untuk urutan karakter ../ akan terlihat seperti ini:

%2e%2e%2f %2e%2e/ ..%2f

Unicode encoding untuk urutan karakter yang sama:

..%c0%af

Pada sistem Windows yang biasanya menggunakan backslashes, URL encoding untuk .. \ akan terlihat seperti:

%2e%2e%5c %2e%2e\ ..%5c

Unicode encoding untuk urutan yang sama:

..%c1%9c

Seringkali aplikasi hanya akan mengizinkan jenis file tertentu untuk dilihat apakah itu halaman yang secara eksplisit berakhiran. Php atau dokumen PDF. Kita bisa mendapatkan ini dengan menambahkan byte nol ke permintaan untuk mengakhiri nama file dan melewati batasan ini seperti:

http://examplesite.com/?file=topsecret.pdf

Mencegah Traversal Direktori

Meskipun traversal direktori berpotensi menjadi serangan yang menghancurkan bagi administrator, untungnya relatif mudah untuk dilindungi. Hal yang paling penting untuk dilakukan adalah menggunakan daftar kontrol akses yang sesuai dan memastikan hak akses file yang tepat ditetapkan. Selain itu kecuali jika benar-benar diperlukan, hindari menyimpan informasi sensitif atau file konfigurasi apa pun di dalam akar dokumen web. Jika tidak ada yang penting pada server untuk memulai, dampak serangan sangat berkurang.

Seperti kebanyakan konfigurasi web-facing lainnya, langkah penting lainnya adalah memastikan validasi input yang tepat digunakan. Bahkan jika itu bisa dihindari lebih baik untuk menghilangkan input pengguna sepenuhnya ketika berhadapan dengan operasi sistem file. Memasukan masukan yang diketahui dengan baik juga dapat digunakan sebagai tindakan tambahan untuk meminimalkan risiko penyerang mengeksploitasi kesalahan konfigurasi apa pun.

Hal lain yang dapat dilakukan terutama jika admin ingin pergi di atas dan melampaui panggilan tugas adalah untuk benar-benar menguji apakah aplikasi mereka rentan terhadap traversal direktori. Cukup mudah untuk secara manual mencoba prosedur ini tetapi ada alat di luar sana yang dapat dengan mudah mengotomatisasi sebagian besar pengujian seperti Dirbuster, ZAP, dan DotDotPwn.

Membungkus

Traversal direktori memungkinkan penyerang mengeksploitasi kesalahan konfigurasi keamanan dalam upaya untuk melihat atau memodifikasi informasi sensitif. Ini adalah salah satu serangan yang lebih sederhana untuk dilakukan tetapi hasilnya dapat menjadi bencana terutama jika data pribadi atau keuangan dikumpulkan atau jika informasi penting tentang server dikompromikan dan digunakan sebagai pivot point. Seperti yang Anda lihat, di dunia peretasan informasi

Comments

Popular Posts