File Upload Vulnerabilities

Ini bisa jadi sebagai pengingat dan cheatsheet buat melakukan penetrating testing ke file upload. Mungkin bakal diurutin dari yang pertama yang harus dicoba sampai yang paling terakhir.

Remote Code Execution via Web Shell Upload

Ini yang pertama. Test apakah di client side ada validasi untuk file upload, kalau ada ya tinggal bypass di BurpSuite. Langsung upload pake code PHP RCE, misal $_GET.

 

Web Shell Upload via Content-Type Restriction Bypass

In yang kedua, cuma perlu ganti Content-Type.

Web Shell Upload via Path Traversal

Path traversal itu diupload tapi pindahin filenya ../ ketas gini.

Web Shell Upload via Extension Blacklist Bypass

Ini biasanya di web server Apache. Upload file .htaccess untuk bikin file eksekusi baru pake application/x-https-php ditambah file extension baru terserah kita. Misal : .crot

Web Shell Upload via Obfuscated File Extension

Ini sebenernya metode lama, cuma tinggal obfuscate file extension dibelakang, misalny dengan %00 yang artinya null, jadi gk diproses.

Remote Code Execution via Polyglot Web Shell Upload

Ini menarik , soalnya teknik ini gabungin lebih dari satu file untuk masuk kedalam. Misalnya masukin meta-data di file image pake code PHP. Pake exiftool.

Web Shell Upload via Race Condition

Ini biasanya ya validation di server-side, dan punya banyak validasi untuk ngcek file yang akan diupload. Server ini mungkin paling bagus soal validasinya. Jadi sepersekian detik setelah file diupload dan sebelum dilakukan pengecekan di server, kita kirim GET request terus-terusan.