# Local File Inclusion

## Apa itu File Inclusion? <a href="#apa-itu-file-inclusion" id="apa-itu-file-inclusion"></a>

**File Inclusion** adalah serangan yang ditujukan kepada website yang memiliki celah keamanan yang biasanya menggunakan fungsi memanggil file melalui suatu inputan dinamis, dalam hal ini berarti seseorang dapat mengganti alamat file yang akan dipanggil dan kemudian diproses.

Efek dari serangan ini cukup besar, peretas bisa saja mengambil informasi penting pada server, merubah dan menghapus data, hingga menyisipkan *shell backdoor/malware*.

Terdapat 2 jenis *file inclusion*, yaitu:

* **Local File Inclusion (LFI)**, hanya bisa melihat data yang ada di dalam server tersebut.
* **Remote File Inclusion (RFI)**, kita bisa mengambil file diluar jaringan agar bisa dijalankan.

## Pengetahuan yang Harus Dimiliki <a href="#pengetahuan-yang-harus-dimiliki" id="pengetahuan-yang-harus-dimiliki"></a>

Ada beberapa pengetahuan yang sangat penting menurut saya untuk melakukan *file inclusion* ini, yaitu:

1. Pengetahuan tentang *HTTP request*,
2. Pengetahuan tentang bahasa pemrograman untuk membuat shell,
3. Dan pengetahuan tentang hirarki direktori dari sistem operasi target.

## Remidiasi <a href="#bagaimana-cara-mengatasi-csrf" id="bagaimana-cara-mengatasi-csrf"></a>

1. 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.*
2. 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.
3. Mengurangi *input* langsung yang memungkinkan *user* dapat memanipulasi parameter yang akan langsung di eksekusi oleh server.
