Cara Mencari Celah Local File Inclusion dan Exploitasi - LFI Tutorial

 


Local File Inclusion atau LFI adalah kerentanan / vulnerability yang umum ditemukan pada aplikasi web. Kerentanan ini memungkinkan penyerang/attacker untuk menyertakan, membaca, atau mendownload file lokal yang tersimpan di server agar dapat menjadi bagian dari proses eksekusi aplikasi.

Beberapa waktu lalu banyak exploit pada forum forum underground yang membahas tentang Local File Inclusion atau LFI. Banyaknya exploit LFI pada forum underground disertai oleh penggunaan php://filter sebagai teknik exploitasi.

Reconnaissance

1.Lakukan Extract URL pada Web target Menggunakan Sudomy, gospider, FindUrl, atau tools buatan nakanosec (untuk pengguna linux). Untuk pengguna windows bisa menggunakan tools online seperti hackertarget extract link (kurang powerfull) atau tools dari free extract url (direkomendasikan). 

2.Cari url dimana pada url tersebut memasukkan link local. 




Pada output tersebut file index.php memasukkan file dari link local. Contoh https://redacted.co.id/index.php?link=page/foto.php memasukkan atau memanggil file dari https://redacted.co.id/page/foto.php. Setelah mendapatkan url lanjut ketahap exploitasi.

Exploitasi Bug Local File Inclusion

Gunakan Payload php://filter/convert.base64-encode/resource=[SourceCodeTarget] sebagai penggati local file pada url. Pada kasus ini saya medapatkan link https://redacted.co.id/index.php?link=page/foto.php dengan tampilan sebagai berikut.

Lalu kita ubah local file tersebut dengan payload diatas maka akan menjadi https://redacted.co.id/index.php?link=php://filter/convert.base64-encode/resource=index.php  yang artinya kita akan mencoba membaca source code file index.php. Tampilan yang didapatkan seperti berikut.


Karna memang output yang diberikan adalah base 64 maka kita dapat melakukan decrypt dengan mudah dengan tools decryptor penamilannya seperti berikut.

Nah disitu kita dapat Souce Code dari https://redacted.co.id/page/foto.php dimana kita menemukan file https://redacted.co.id/page/pesan_simpan.php yang di include kan. Hal ini jika dilakukan lebih dalam kita bisa menemukan konfigurasi database, atau bahkan hal hal sensitive lainnya (untuk demo mengambil database silahkan baca disini).

Selain itu Local File Inclusion juga dapat digunakan sebagai sarana Remote Command Execution atau RCE dengan menggunakan beberapa cara 

1.Menggunakan /proc/self/environ atau /proc/self/ld dimana injeksi code dilakukan pada user agent (udah banyak tutornya jadi ga kami bahas)

2. Menggunakan Phpinfo dan LFI sebagai awal dari RCE. untuk toolsnya bisa dilihat disini

3.Menggunakan PHP Wrapper expect://  Pada tahap exploitasi selalu lakukan pengecekan dengan memasukkan payload expect://ls dan jika muncul error 

Warning: include(): Unable to find the wrapper "expect" - did you forget to enable it when you<br> configured PHP? in /var/www/fileincl/example1.php on line 7 Warning: include(): Unable to find the<br> wrapper "expect" - did you forget to enable it when you configured PHP? in <br> /var/www/fileincl/example1.php on line 7 Warning: include(expect://ls): failed to open stream: No such file or directory in /var/www/fileincl/example1.php on line 7 Warning: include(): Failed opening 'expect://ls' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/fileincl/example1.php on line 7

Maka bisa dipastikan target kita dapat dilakukan RCE. untuk melakukan RCE kita hanya perlu melakukan post data dengan payload  php://input

http://127.0.0.1/fileincl/example1.php?page=php://input


 Pict by highon.coffee

Mungkin itu dulu untuk sementara jika ada masukkan kami tunggu. Semoga bermanfaat

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.