# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://notes.anggipradana.com/tutorial/dvwa/local-file-inclusion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
