Menu

apa itu Local File Inclusion (LFI) ?

apa itu Local File Inclusion (LFI) ?



Panduan definitif untuk pengujian keamanan kerentanan LFI untuk perburuan & penetrasi bugpengujian keterlibatan.

pengantar

Maksud dari dokumen ini adalah untuk membantu penguji penetrasi dan siswa mengidentifikasi dan menguji kerentanan LFI pada keterlibatan pengujian penetrasi di masa mendatang dengan mengonsolidasi penelitian untuk teknik pengujian LFI penyertaan file lokal. Kerentanan LFI biasanya ditemukan selama tes pena aplikasi web menggunakan teknik yang terdapat dalam dokumen ini. Selain itu, beberapa teknik yang disebutkan dalam makalah ini juga biasa digunakan dalam kompetisi gaya KKP.

Bab Utama

  • Apa itu kerentanan Local File Inclusion (LFI)?
  • Mengidentifikasi Kerentanan LFI dalam Aplikasi Web
  • Pembungkus PHP
  • LFI melalui / proc / self / environment
  • Teknik Null Byte
  • Pemotongan LFI Bypass
  • Kontaminasi File Log
  • Kirim email ke Reverse Shell

Apa itu kerentanan Local File Inclusion (LFI)?

<?php

$file = $_GET[‘file’];

if(isset($file))

{

include(“pages/$file”);

}

else

{

include(“index.php”);

}

?>


Mengidentifikasi Kerentanan LFI dalam Aplikasi Web

LFI vu l nerabilities mudah untuk mengidentifikasi dan mengeksploitasi. Semua skrip yang menyertakan file dari server web adalah kandidat yang baik untuk pengujian LFI lebih lanjut, misalnya:

/script.php?page=index.html


Penguji penetrasi akan mencoba mengeksploitasi kerentanan ini dengan memanipulasi parameter lokasi file, seperti:

/script.php?page=../../../../../../../../etc/passwd

Di atas adalah upaya untuk menampilkan konten file / etc / passwd pada sistem berbasis UNIX / Linux.

Pembungkus PHP

PHP memiliki sejumlah pembungkus yang sering dapat disalahgunakan untuk melewati berbagai filter masukan.

PHP Harapkan Pembungkus

PHP expect:// memungkinkan eksekusi perintah sistem, sayangnya modul mengharapkan PHP tidak diaktifkan secara default.

php?page=expect://ls

Payload dikirim dalam permintaan POST ke server seperti:

/ fi /?page=php://input&cmd=ls

Contoh menggunakan php://input terhadap DVWA:

Permintaan 

Request



Deskripsi gambar: Permintaan POST menggunakan php: //input


Deskripsi gambar: Output dari perintah "ls" ditampilkan di atas banner DVWA.

PHP php: // filter



php: // filter memungkinkan penguji pena menyertakan file lokal dan base64 menyandikan keluarannya. Oleh karena itu, keluaran base64 apa pun perlu didekodekan untuk mengungkapkan isinya.

Contoh menggunakan DVWA:

vuln.php?page=php://filter/convert.base64-encode/resource=/etc/passwd



 

Gambar yang menunjukkan output dekode base64 dari / etc / passwd pada sistem UNIX / Linux


PHP ZIP Wrapper LFI

Proses zip wrapper mengunggah file .zip di sisi server memungkinkan penguji penetrasi mengunggah file zip menggunakan fungsi unggah file yang rentan dan memanfaatkan filter zip melalui LFI untuk dieksekusi. Contoh serangan yang khas akan terlihat seperti:

LFI melalui / proc / self / environment

Jika memungkinkan untuk menyertakan / proc / self / environment melalui kerentanan penyertaan file lokal, maka memasukkan kode sumber melalui header User Agent adalah vektor yang memungkinkan. Setelah kode disuntikkan ke header Agen Pengguna, kerentanan penyertaan file lokal dapat dimanfaatkan untuk mengeksekusi /proc/self/ environment dan memuat ulang variabel lingkungan, mengeksekusi reverse shell Anda.

Kerang yang Berguna

Pintu belakang PHP kecil yang berguna untuk teknik di atas:

<?php system ('uname -a');?>

Teknik Null Byte

Injeksi byte nol melewati pemfilteran aplikasi dalam aplikasi web dengan menambahkan URL yang dikodekan "Byte kosong" seperti% 00. Biasanya, ini melewati filter daftar hitam aplikasi web dasar dengan menambahkan karakter null tambahan yang kemudian diizinkan atau tidak diproses oleh aplikasi web backend.

vuln.php?page=/etc/passwd%00

vuln.php?page=/etc/passwd%2500

Pemotongan LFI Bypass

Pemotongan adalah teknik pintas daftar hitam lainnya. Dengan memasukkan parameter panjang ke dalam mekanisme penyertaan file yang rentan, aplikasi web dapat "memotongnya" (memotong) parameter masukan, yang dapat melewati filter masukan.

Kontaminasi File Log

Kontaminasi file log adalah proses memasukkan kode sumber ke dalam file log pada sistem target. Ini dicapai dengan memperkenalkan kode sumber melalui layanan lain yang terpapar pada sistem target yang akan disimpan oleh sistem / layanan operasi target dalam file log. Misalnya, memasukkan kode shell terbalik PHP ke dalam URL, menyebabkan syslog membuat entri di log akses apache untuk entri laman 404 tidak ditemukan. File log apache kemudian akan diurai menggunakan kerentanan penyertaan file yang ditemukan sebelumnya, mengeksekusi shell reverse PHP yang diinjeksi.

Apache / Nginx

Masukkan kode ke akses server web atau log kesalahan menggunakan netcat, setelah injeksi berhasil mengurai lokasi file log server dengan memanfaatkan kerentanan LFI yang ditemukan sebelumnya. Jika log akses / kesalahan server web panjang, mungkin perlu beberapa waktu untuk mengeksekusi kode yang Anda masukkan.

Kirim email ke Reverse Shell

Jika mesin target merelay email baik secara langsung atau melalui mesin lain di jaringan dan menyimpan email untuk pengguna www-data (atau pengguna apache) pada sistem, maka dimungkinkan untuk mengirim email reverse shell ke target. Jika tidak ada data MX untuk domain tersebut tetapi SMTP terekspos, dimungkinkan untuk menyambung ke server email target dan mengirim email ke pengguna www-data / apache. Email dikirim ke pengguna yang menjalankan apache seperti www-data untuk memastikan izin sistem file akan memungkinkan akses baca file / var / spool / mail / www-data yang berisi kode shell terbalik PHP yang diinjeksi.

Gambar untuk postingan
Gambar di atas menggunakan skrip smtp-user-enum yang mengonfirmasi bahwa pengguna www-data ada di sistem
Gambar untuk postingan
Gambar di atas menunjukkan proses pengiriman shell PHP terbalik melalui SMTP menggunakan telnet
Gambar untuk postingan
Gambar di atas menunjukkan penyertaan file www-data mail spool yang berisi kode shell reverse PHP yang diemail
Gambar untuk postingan
Gambar di atas menunjukkan shell reverse PHP yang dikirim melalui email yang terhubung ke pendengar netcat

Referensi

Sumber informasi yang digunakan dalam dokumen ini:

Iklan Tengah Post

Ads middle content1

Ads middle content2