[Technofair 8.0] Simple
Diberikan soal dan sebuah website dengan deskripsi seperti berikut
Simple
Description
Is it simple huh?http://103.152.242.172:20053/
Author: brokenheart
Setelah website dibuka, website menggunakan PHP dan terdapat satu input field nama.
maaf lupa screenshoot isi dari websitenya 🙏
Pada website tersebut terdapat bug LFI (Local File Inclusion) pada parameter ?page di index website
Setelah itu dilakukan pencarian terhadap clue selanjutnya dengan melakukan pembacaan file melalui file inclusion tetapi tidak ada satu pun file yang membantu memberikan hint agar bisa mendapatkan flag.
Setelah melakukan pencarian lebih dalam, pada index.php saat kita menginputkan nama, maka nama tersebut akan disimpan pada PHP Session yang biasanya terletak pada /var/lib/php/sessions/sess_random
Demo time
Buatlah sebuah file test.php dengan code seperti berikut dan jalankan dengan command php -S 0.0.0.0:8000
<?php
session_start();
$_SESSION['nama'] = "ryo";
?>
Lalu buka 0.0.0.0:8000/test.php pada browser, maka akan ada satu file baru yang muncul pada /var/lib/php/sessions/ kalian
Jika kita lihat, bahwa random dari file sess_random adalah Cookie PHP_SESSID yang diberikan pada browser kita. Dan isi dari file sess_random tersebut adalah session yang sudah di set pada $_SESSION['nama'] = "ryo";
Dengan itu apa yang kita inputkan pada nama tadi dapat ditampilkan pada website dengan melakukan inclusion pada file /var/lib/php/sessions/sess_random dengan random adalah value dari Cookie PHP_SESSID kita, sehingga kita dapat menginject suatu script PHP pada nama untuk mendapatkan RCE.
Setelah menginjectkan script PHP pada nama untuk melakukan Reverse Shell, lalu lakukan request kembali untuk melakukan inclusion pada /var/lib/php/sessions/sess_random. Maka akan mendapatkan shell
Setelah mendapatkan reverse shell tinggal cat flag