PHP LFI – Local File Inclusion

Local File Inclusion merupakan salah satu tehnik vulnerabilities dari PHP.

Apa itu vulnerability ? Vulnerability adalah sesuatu yang bertalian dengan sistem komputer yang memungkinkan seseorang mengoperasikan dan menjalankannya dengan benar, atau memungkinkan pihak tak berwenang (bisa hacker) mengambil alih. Ada banyak tipe vulnerability. Ada miskonfigurasi dalam setup service, atau flaw programming service. ( sumber blackapril.tripod.com)

contoh kode php yang bisa menjadi celah keamanan adalah seperti berikut.

<?php
include $_GET[“page”];
?>

maksud dari kode diatas adalah php akan memanggil dan memproses file yang di include hasil dikirim melalui variabel GET page ($_GET[“page”] adalah variabel berisi sebuah file ekstensi php).

misal alamat yang memanggil url

index.php?page=page1.php

selain page1.php, bisa di ganti dengan page2.php atau dengan file-file lain yang ada di local.

Contoh kode diatas tidak memiliki filter untuk file-file yang boleh di include yang seharusnya ada filter.

jika saya coba ubah url menjadi

index.php?page=../../upload.php

maka web akan mengakses halaman upload.php yang dimana posisi upload diluar direktori web site atau direktori project.

apabila url diganti menjadi berikut

index.php?page=php://filter/convert.base64-encode/resource=index.php

maka halaman web akan menampilkan isi kode index.php dalam bentuk encrypt base 64.

PD9waHAKCmluY2x1ZGUgJF9HRVRbInBhZ2UiXTs=

untuk melihat isi script coba buka alamat

https://www.base64decode.org/

atau dengan tools hackbar (kalau belum terinstal anda bisa instal di browser firefox atau chrome).

endang-hackbar-base64-decode

bahayanya apabila cara ini digunakan untuk melihat file untuk login ke database. Contoh di bawah hasil dari decode base64, bisa dilihat user password untuk koneksi ke mysql.

<?php
mysql_connect(‘localhost’,’root’,’123456′);
mysql_select_db(‘endangcahyapermana’);

untuk mendecode kode diatas dan melihat kode asli file. Bahayanya LFI adalah apabila setting php.ini untuk

allow_url_include = On (default off)

endang-allow-url-include

sekarang kita coba pake php://input, di percobaan sebelumnya pake php://filter.

penggunaan php://input akan di proses dengan menggunaan bantuan alat addons hackbar dari browser.

 

Semoga bermanfaat. wassalam.

 

 

 

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s