Low

Blind SQL Injection level Low on DVWA

Di bawah ini adalah source-code dari Blind SQL Injection level low di DVWA.

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

if( isset( $_GET[ 'Submit' ] ) ) {
    // Get input
    $id = $_GET[ 'id' ];

    // Check database
    $getid  = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";
    $result = mysqli_query($GLOBALS["___mysqli_ston"],  $getid ); // Removed 'or die' to suppress mysql errors

    // Get results
    $num = @mysqli_num_rows( $result ); // The '@' character suppresses errors
    if( $num > 0 ) {
        // Feedback for end user
        echo '<pre>User ID exists in the database.</pre>';
    }
    else {
        // User wasn't found, so the page wasn't!
        header( $_SERVER[ 'SERVER_PROTOCOL' ] . ' 404 Not Found' );

        // Feedback for end user
        echo '<pre>User ID is MISSING from the database.</pre>';
    }

    ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}

?> 

Mencari Informasi

Pada level ini tidak ada validasi apa pun untuk pada inputan yang digunakan untuk menjalankan query. Ketika kita menginputkan '1' (true), maka akan tampil seperti berikut:

Jika saya coba membuatnya error (false), maka akan tampil seperti berikut:

Ketika saya mencoba menyisipkan payload seperti berikut, maka hasilnya akan true. Ini berarti form tersebut memiliki celah Blind SQL Injection.

Untuk melakukan eskplorasi lebih lanjut, kita membutuhkan tool SQLMap.

Melakukan Serangan

Oke, langsung saja kita jalankan SQLMap seperti berikut ini:

sqlmap -u "172.17.0.2/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="PHPSESSID=jusi9ccuu6qfk9m3tqdf103jo2; security=low" --dbs

Terlihat bahwa terdapat 2 database yang tersedia pada akun tersebut.

Mudahkan? 😁 Happy Hacking! 🍻

Last updated