Mengenal HTML Injection (HTMLi): Kerentanan Low Severity yang Tetap Menghasilkan Bounty

HTML Injection (HTMLi) adalah kerentanan web yang terjadi ketika aplikasi menampilkan input dari user tanpa melakukan sanitasi atau encoding yang benar. Hal ini memungkinkan attacker untuk menyisipkan kode HTML ke dalam halaman web.

Walaupun sering dikategorikan sebagai Low Severity, HTML Injection tetap merupakan kerentanan valid dan sering mendapatkan bounty, terutama jika ditemukan pada halaman sensitif seperti dashboard, profile, atau sistem notifikasi.


Apa Itu HTML Injection?

HTML Injection terjadi ketika input user dimasukkan langsung ke dalam DOM tanpa di-escape.

Contoh kode vulnerable:

<div>Welcome, USER_INPUT</div>

Jika user memasukkan input:

<i>test</i>

Maka browser akan merender:

Welcome, test

Tag akan dirender sebagai HTML, bukan sebagai teks biasa.


Penyebab HTML Injection

  • Tidak melakukan HTML escaping
  • Menggunakan innerHTML tanpa sanitasi
  • Tidak melakukan output encoding
  • Input user langsung dimasukkan ke DOM

Contoh vulnerable JavaScript:

element.innerHTML = userInput;

Contoh aman:

element.textContent = userInput;

Contoh Perbandingan Vulnerable vs Tidak Vulnerable

Input user:

<i>test</i>

Vulnerable

document.getElementById("output").innerHTML = userInput;

Hasil:

test → teks menjadi miring karena dirender sebagai HTML

Tidak Vulnerable (Aman)

document.getElementById("output").textContent = userInput;

Hasil:

<i>test</i> → ditampilkan sebagai teks biasa


Dampak HTML Injection

  • Manipulasi tampilan website
  • Phishing form injection
  • Defacement ringan
  • Social engineering

Dimana HTML Injection Biasanya Ditemukan?

  • Comment form
  • Profile name
  • Search field
  • Feedback form
  • Chat system
  • Notification system
  • Poll dan voting

Cara Mitigasi

  • Gunakan textContent, bukan innerHTML
  • Lakukan output encoding
  • Gunakan sanitization
  • Jangan percaya input user

Kesimpulan

HTML Injection adalah kerentanan sederhana namun valid. Walaupun sering dikategorikan sebagai Low Severity, vulnerability ini tetap penting dan sering menghasilkan bounty.

Bagi bug bounty hunter, HTML Injection merupakan salah satu kerentanan yang mudah ditemukan dan tetap bernilai.

Saran saya, selalu tempel payload HTMLi pada semua kolom input yang ada pada target Bug Bounty kalian, bisa saja hal kecil seperti itu bisa berubah jadi $$$🤑.