Medium

XSS (DOM) level Medium on DVWA

Di bawah ini adalah source-code dari XSS (DOM) level medium di DVWA.

vulnerabilities/xss_d/source/medium.php
<?php

// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {
    $default = $_GET['default'];
    
    # Do not allow script tags
    if (stripos ($default, "<script") !== false) {
        header ("location: ?default=English");
        exit;
    }
}

?> 

Mencari Informasi

Secara visual tidak ada perbedaan pada level ini dan sebelumnya. Jika kita mengubah nilai dari parameter tersebut, maka akan tampil seperti sebelumnya.

Perhatikan pada source code baris ke-8, bahwa terdapat validasi jika mengandung kata "<script" pada nilai parameter default, maka akan di redirect ke parameter ?default=English.

Untuk mengatasi ini kita harus mencari cara lain untuk menjalankan JavaScript tanpa menggunakan tag <script>.

Terdapat cara yaitu dengan fungsi onload pada tag HTML. Tetapi untuk melakukan hal tersebut kita harus tutup terlebih dahulu tag sebelumnya (di sini <select>) agar script yang kita inject bisa berjalan.

Melakukan Serangan

Payload yang kita akan dibuat sesuai dengan hasil recon di atas. Sekarang kita akan menutup tag <select> terlebih dahulu dan dilanjutkan oleh script yang menjalankan JavaScript seperti berikut:

?default=</select><body onload="alert('Hacked')">

Perhatikan dari hasil injetion di atas, tag <select> tertutup terlebih dahulu sebelum tag <option> dan tag <body> memanggil fungsi JavaScript.

Kita juga bisa mendapatkan cookie seperti biasa:

Untuk melakukan serangan XSS, peretas harus paham tentang pola dari HTML website tersebut.

Mudah bukan? Happy Hacking!😁

Last updated