LFI (Local File Inclusion)
LFI (Local File Inclusion) adalah jenis kerentanan keamanan yang memungkinkan penyerang untuk mengakses file lokal pada sistem yang rentan.
LFI adalah singkatan dari:
LFI adalah singkatan dari:
- Local: Menyebutkan bahwa kerentanan ini terkait dengan file lokal pada sistem.
- File: Menyebutkan bahwa kerentanan ini terkait dengan akses ke file.
- Inclusion: Menyebutkan bahwa kerentanan ini terkait dengan kemampuan penyerang untuk mengakses file lokal melalui input yang tidak divalidasi dengan benar.
- Mengakses file konfigurasi
- Mengakses file log
- Mengakses file sistem operasi
- Mengakses file sensitif lainnya
- Pengguna dapat mengakses file /etc/passwd dengan mengirimkan permintaan seperti http://example.com/index.php?file=/etc/passwd.
- Pengguna dapat mengakses file config.php dengan mengirimkan permintaan seperti http://example.com/index.php?file=config.php.
Contoh kode LFI:
// Kode yang rentan LFI
$file = $_GET['file'];
include($file . '.php');
Dalam contoh di atas, kode yang rentan LFI memungkinkan penyerang untuk mengakses file lokal dengan mengirimkan permintaan yang sesuai.
Untuk mencegah LFI, kode di atas dapat diubah menjadi:
// Kode yang aman
$allowed_files = array('file1.php', 'file2.php');
$file = $_GET['file'];
if (in_array($file, $allowed_files)) {
include($file . '.php');
} else {
echo "Akses tidak diizinkan";
}
// Kode yang rentan LFI
$file = $_GET['file'];
include($file . '.php');
Dalam contoh di atas, kode yang rentan LFI memungkinkan penyerang untuk mengakses file lokal dengan mengirimkan permintaan yang sesuai.
Untuk mencegah LFI, kode di atas dapat diubah menjadi:
// Kode yang aman
$allowed_files = array('file1.php', 'file2.php');
$file = $_GET['file'];
if (in_array($file, $allowed_files)) {
include($file . '.php');
} else {
echo "Akses tidak diizinkan";
}
LFI dapat dicegah dengan melakukan:
- Validasi input pengguna
- Implementasi akses kontrol yang ketat
- Penggunaan enkripsi
- Implementasi audit dan pemantauan