LOCAL/REMOTE FILE INCLUSION

 DEMO 1: SERANGAN LFI 

  • Buat sebuah folder di C:\xampp\htdocs\ bernama lfi. 
  • Di dalam folder lfi, buat file bernama index.php dengan isi sebagai berikut:

<?php
// index.php
$page = isset($_GET['page']) ? $_GET['page'] : 'home.php';
include($page);
?>

  • Buat file home.php di folder yang sama dengan isi:

<?php
echo "Welcome to the home page!";
?>

DEMO 2: SERANGAN RFI
  • Buat folder di C:\xampp\htdocs\ bernama uploads.
  • Buat file upload.php di C:\xampp\htdocs\lfi\ dengan isi sebagai berikut:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". htmlspecialchars(basename($_FILES["fileToUpload"]["name"])). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>

<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select file to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload File" name="submit">
</form>
</body>
</html>

  • Buat file PHP berbahaya (shell.php) dengan isi:
<?php
echo "Shell executed!";
?>


Untuk mengakses http://localhost/lfi/upload.php, pilih file shell.php, dan upload.
maka hasil sebagai berikut :


TUGAS 

1. Tambahkan script pada file tersebut agar terhindar dari serangan LFI & RFI 
  • Mencegah LFI
Berikut adalah contoh script yang dimodifikasi untuk mencegah LFI: (index.php)

<?php
// index.php
$whitelist = ['home.php', 'about.php', 'contact.php']; // Daftar file yang diizinkan
$page = isset($_GET['page']) ? $_GET['page'] : 'home.php';

if (in_array($page, $whitelist)) {
    include($page);
} else {
    echo "Halaman tidak ditemukan.";
}
?>

  • Mencegah RFI

Lalu contoh script yang dimodifikasi untuk mencegah RFI: (upload.php)

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $fileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

    // Validasi jenis file
    $allowedTypes = ['jpg', 'png', 'gif', 'jpeg']; // Contoh ekstensi file yang diizinkan
    if (in_array($fileType, $allowedTypes)) {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "The file ". htmlspecialchars(basename($_FILES["fileToUpload"]["name"])). " has been uploaded.";
        } else {
            echo "Sorry, there was an error uploading your file.";
        }
    } else {
        echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    }
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
    Select file to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload File" name="submit">
</form>
</body>
</html>
  • Silahkan coba memasukkan gambar/file 
  • Maka Hasil :



2. Jelaskan dampak dari serangan LFI & RFI

LFI (Local File Inclusion)

  1. Disclosure of Sensitive Information: Penyerang dapat membaca file sensitif di server seperti file konfigurasi, yang bisa mengungkap informasi penting seperti kredensial database.
  2. Remote Code Execution: Penyerang dapat menggunakan LFI untuk menjalankan skrip PHP yang ada di server, yang dapat menyebabkan eksekusi kode jarak jauh.

RFI (Remote File Inclusion)

  1. Remote Code Execution: Penyerang dapat menyertakan file dari server lain yang berisi kode berbahaya dan mengeksekusinya di server target.
  2. Malware Insertion: Penyerang dapat menyisipkan malware atau backdoor ke dalam server, yang dapat digunakan untuk mengambil alih server atau mencuri data.

Dengan menerapkan langkah-langkah pencegahan di atas, Anda dapat mengurangi risiko serangan LFI dan RFI dan meningkatkan keamanan aplikasi web Anda.


























Komentar

Postingan populer dari blog ini

Demo Bypass Login dengan SQL Injection

RANSOMWARE