DVWA
  • Introduction
  • About The Author
  • Brute Force
    • Pengenalan
    • Low
    • Medium
    • High
  • Command Injection
    • Pengenalan
    • Low
    • Medium
    • High
  • CSRF
    • Pengenalan
    • Low
    • Medium
    • High
  • File Inclusion
    • Pengenalan
    • Low
    • Medium
    • High
  • File Upload
    • Pengenalan
    • Low
    • Medium
    • High
  • SQL Injection
    • Pengenalan
    • Low
    • Medium
    • High
  • SQL Injection (Blind)
    • Pengenalan
    • Low
    • Medium
    • High
  • XSS (DOM)
    • Pengenalan
    • Low
    • Medium
    • High
  • XSS (Reflected)
    • Pengenalan
    • Low
    • Medium
    • High
  • XSS (STORED)
    • Pengenalan
    • Low
    • Medium
    • High
  • CSP Bypass
    • Pengenalan
    • Low
    • Medium
    • High
Powered by GitBook
On this page
  • Mencari Informasi
  • Melakukan Serangan

Was this helpful?

  1. XSS (STORED)

Low

XSS (Stored) level Low on DVWA

Di bawah ini adalah source-code dari XSS (Stored) level low di DVWA.

vulnerabilities/xss_s/source/low.php
<?php

if( isset( $_POST[ 'btnSign' ] ) ) {
    // Get input
    $message = trim( $_POST[ 'mtxMessage' ] );
    $name    = trim( $_POST[ 'txtName' ] );

    // Sanitize message input
    $message = stripslashes( $message );
    $message = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $message ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));

    // Sanitize name input
    $name = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $name ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));

    // Update database
    $query  = "INSERT INTO guestbook ( comment, name ) VALUES ( '$message', '$name' );";
    $result = mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );

    //mysql_close();
}

Mencari Informasi

Terdapat form yang ketika saya coba menginputkan "test<'>" , maka hasilnya akan tersimpan di halaman tersebut.

Dari informasi yang bisa kita dapatkan dari view source, kita bisa mengetahui bahwa tidak ada validasi untuk HTML spesial karakter di sini, sehingga kita bisa dengan mudah melakukan serangan XSS.

Melakukan Serangan

Kita coba dengan payload yang pertama, yaitu:

<script>alert('Hacked')</script>

Jika dilihat menggunakan view source, maka akan terlihat seperti berikut:

Seperti biasa kita juga bisa mengambil cookie dengan payload berikut:

<script>alert(document.cookie)</script>

Yup! Jika halaman ini di-refresh, maka payload tersebut akan dijalankan lagi karena sekarang payload tersimpan (stored) pada halaman web tersebut.

PreviousPengenalanNextMedium

Last updated 5 years ago

Was this helpful?

Dan berhasil!

Happy Hacking!

😊
🍻