DOM XSS tersimpan

Apr 07 2023
Menemukan dan mengatasi kelemahan keamanan kritis
Saya menemukan kerentanan Stored DOM XSS saat menguji aplikasi web. Aplikasi online memiliki area di mana pengguna dapat memasukkan data untuk disimpan dalam database dan disajikan pada halaman berikutnya, di mana kerentanan berada.
tangkapan layar oleh penulis

Saya menemukan kerentanan Stored DOM XSS saat menguji aplikasi web. Aplikasi online memiliki area di mana pengguna dapat memasukkan data untuk disimpan dalam database dan disajikan pada halaman berikutnya, di mana kerentanan berada.

Penyerang dapat menggunakan cacat ini untuk menjalankan kode arbitrer di browser korban dan berpotensi mencuri informasi sensitif atau membahayakan mesin korban sepenuhnya.

Saat pengguna memasukkan input yang dibuat dengan hati-hati ke dalam bidang yang muncul di halaman berikutnya dari program, kerentanan diaktifkan.

Input tidak dibersihkan secara memadai sebelum disimpan dalam database dan ditampilkan di situs berikutnya, memungkinkan penyerang untuk memasukkan kode HTML dan JavaScript yang sewenang-wenang.

Kode ini kemudian dilakukan oleh browser korban saat mengakses situs web yang rentan, memungkinkan penyerang untuk mencuri data sensitif atau melakukan aktivitas atas nama korban.

Langkah-langkah untuk Reproduksi:

  1. Masuk ke aplikasi web sebagai pengguna biasa
  2. Arahkan ke bagian di mana data dimasukkan dan disimpan dalam database
  3. Masukkan muatan berikut ke dalam bidang teks:
  4. "><img src="x" onerror="alert(1)">
    

6. Pesan peringatan “1” akan ditampilkan.

Bukti dari konsep:

Disini saya menyediakan lab untuk latihan stored dom xss.

Dampak:

Kerentanan ini dapat digunakan oleh penyerang untuk mendapatkan data sensitif seperti kata sandi pengguna, token sesi, dan data pribadi.

Selain melakukan hal-hal seperti mentransfer uang, melakukan pembelian tidak sah, atau mengubah pengaturan akun atas nama korban, mereka juga dapat menggunakannya untuk melakukan hal ini. Karena memberi penyerang seluruh akses ke akun korban, kerentanan ini memiliki konsekuensi serius.

Rekomendasi:

  • Sanitasi semua input pengguna sebelum menyimpannya di database atau menampilkannya di halaman lain aplikasi.
  • Terapkan header Kebijakan Keamanan Konten (CSP) untuk mencegah eksekusi skrip sebaris dan membatasi sumber skrip eksternal.
  • Lakukan penilaian keamanan aplikasi web secara teratur untuk mengidentifikasi dan mengatasi kerentanan lainnya.