High

XSS (DOM) level High on DVWA

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

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

// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {

    # White list the allowable languages
    switch ($_GET['default']) {
        case "French":
        case "English":
        case "German":
        case "Spanish":
            # ok
            break;
        default:
            header ("location: ?default=English");
            exit;
    }
}

?> 

Mencari Informasi

Pada level ini, developer sekarang menentukan whitelist untuk nilai dari parameter default.

Setelah mencoba berbagai cara, akhirnya saya mencoba untuk membuat parameter baru (di sini diberi nama test), dan hasilnya seperti berikut:

Terlihat bahwa parameter baru tersebut akan ter-print ke halaman web tersebut. Ini bisa kita manfaatkan untuk melakukan injection.

Melakukan Serangan

Hasil dari pengamatan di atas adalah kita bisa menyisipkan script seperti berikut:

?default=English&<script>alert("Hacked")</script>

Jika dijalankan akan tampil hasil injection seperti berikut:

Seperti biasa, kita juga bisa mengambil cookie-nya.

Selain menggunakan payload seperti di atas, saya juga menemukan cara baru dengan menggunakan payload berikut:

?default=English#<script>alert(123)</script>

Alhamdulillah! Kita telah menyelesaikan semua level dari XSS (DOM) di DVWA.😁​

Happy Hacking! 🍻

Last updated