LFI (Directory Traversal) di redacted.co.id
Sekilas Tentang LFI
LFI (Local File Inclusion) merupakan kerentanan yang memungkinkan penyerang untuk menyertakan file lokal yang tersimpan di server agar dapat menjadi bagian dari proses eksekusi aplikasi. Kerentanan LFI terjadi karena fungsi include pada aplikasi dapat dimanipulasi oleh pengguna melalui fungsi input.
LFI juga dapat terjadi pada fungsi aplikasi yang memproses file berdasarkan nama file yang diberikan oleh pengguna. Hal ini juga biasa disebut dengan kerentanan file path traversal. Input yang diberikan oleh pengguna bisa menggunakan link pada URL atau melalui fungsi input.
Singkat kata, dengan kerentanan LFI ini, penyerang dapat menginstruksikan aplikasi web untuk membaca isi file yang berada diluar direktori home aplikasi tersebut. Misalnya menginstruksikan aplikasi web untuk membaca nama user di webserver linux pada etc/passwd (misalnya). Selain membaca isi file, penyerang juga dapat menginstruksikan aplikasi web yang rentan untuk mengeksekusi kode pemprograman.
Sumber deskripsi tentang LFI dikutip dan/atau disadur dari artikel berikut.
Deskripsi Temuan
redacted.co.id ( nama situs yang disamarkan) merupakan salah satu E-commerce di Indonesia. Kerentanan LFI terjadi karena path traversal , yaitu meminta web untuk melakukan redirect ke luar direktori web dengan memanfaatkan dot-dot-slash (../) sebagai perintah untuk mundur satu tingkat ke direktori sebelumnya. Berikut ini merupakan pemanfaatan path traversal untuk LFI dengan target file /etc/passwd pada web redacted.co.id:
Proof Of Concept
POC kerentanan ini cukup mudah, yaitu dengan mengakses link path traversal pada deskripsi. Berikut merupakan POC kerentanan LFI di redacted.co.id:
1.Buka link berikut ini.
2.Web akan me-redirect ke URL berikut ini.
3.Web akan menampilkan isi dari file pada /etc/passwd. Berikut merupakan screenshot file /etc/passwd pada webserver redacted.co.id .
Dampak Kerentanan LFI
Eksploitasi kerentanan LFI pada aplikasi web dapat memiliki dampak negatif yang tinggi. Bahkan, berdasarkan OWASP kerentanan LFI tercantum dalam daftar 10 teratas kerentanan aplikasi web. Penyerang dapat menginstruksikan aplikasi web untuk membaca isi file yang berada diluar direktori home aplikasi tersebut. Misalnya menginstruksikan aplikasi web untuk membaca nama user di webserver linux pada etc/passwd. Lebih lanjut, serangan dapat diekskalasikan menjadi Remote Code Execution untuk mengontrol webserver secara penuh.
Remidiasi
Karena penyebab LFI pada kasus di redacted.co.id ini adalah path traversal, maka remidiasi yang dapat dilakukan berdasarkan portswigger adalah sebagai berikut:
Melakukan validasi atau sanitasi terhadap input yang diberikan oleh user. Web harus dapat membedakan format/karakter input user berdasarkan tujuan dari input tersebut. Berdasarkan kasus ini, dot-dot-slash (../) dapat disanitasi oleh sistem untuk mencegah path traversal.
Melakukan pembatasan akses ke luar direktori aplikasi. Aplikasi web harus diatur agar tidak ada permintaan dari user untuk akses ke luar direktori web yang diijinkan.
Mengurangi input langsung yang memungkinkan user dapat memanipulasi parameter yang akan langsung di eksekusi oleh server.
Timeline
Last updated