MIME Type Sniffing pada Form Upload Gambar

MIME Type Sniffing pada Form Upload Gambar. Oke kali ini saya akan membahas mengenai cara mengeksploitasi form upload pada sebuah web sehingga memunculkan XSS. Kita bisa memodifikasi request saat melakukan upload (mirip seperti tamper data), hanya saja nantinya yang kita modifikasi adalah mime type nya.

Saya menemukan bug ini pada salahsatu marketplace besar di Indonesia. Namun ketika saya laporkan bugnya, ternyata duplicate. Tapi kampangnya, meski duplicate bug nya masih saya tidak dipatch, padahal kalau dihitung hitung sudah sekitar dua bulan yang lalu saya lapor. Berarti (jika memang bug tersebut duplicate), pihak security marketplace lebih dari dua bulan sudah mengetahui bug tersebut terhitung dari pelapor pertama.

Oke karena mungkin pihak marketplace tersebut tidak menganggap ini sebagai bug, saya sharing saja disini bagaimana PoC nya.

Pertama, kita butuh tool ImageMagick. Ini untuk menyisipkan payload XSS kita kedalam gambar. Intinya, payload disini tidak bisa langsung disisipkan kedalam gambar dengan cara kita membuka file gambar dengan teks editor, menambahkan script XSS di paling bawah, kemudian menyimpan gambarnya kembali. File gambar tersebut akan terdeteksi sebagai file corrupt saat diupload.

Oke balik lagi ke topik, pertama, kita harus menyediakan gambar “murni” yang akan kita sisipi payload. Murni disini dalam artian gambar tersebut masih bersih tanpa ada inject payload didalamnya.

Sebagai contoh, kita gunakan gambar dedek sejuta umat berikut:

Oh iya pastikan kalian sudah menginstall imagemagick. Di Debian dan Ubuntu serta turunannya, gunakan perintah

sudo apt-get update && sudo apt-get install imagemagick

Untuk menginstall imagemagick.

Selanjutnya kita sisipkan payload kita kedalam gambar dalam bentuk comment.

wget https://exploit.linuxsec.org/wp-content/uploads/2019/06/sagiri.jpg
convert sagiri.jpg -set comment '<script>alert(document.domain);</script>' izumi.jpg
mv izumi.jpg izumi.jpg.html

Selanjutnya kita upload file izumi.jpg.html tersebut lewat form upload.

Sebelumnya, kita siapkan juga Burp Suite atau apapun itu yang bisa digunakan untuk memodifikasi request. Namun disini saya menggunakan Burp. Kita ubah ekstensi gambar dari html ke jpg. Namun biarkan content-type tetap text/html.

Ubah ekstensi file nya

Jika memang web nya vuln, maka gambar akan sukses terupload. Dan jika diakses, script XSS akan muncul.

Saat dicek content type nya pun html

Oke mungkin itu saja writeup kali ini, semoga bermanfaat.

Shares

6 Comments

Leave a Reply