Di bawah ini adalah source-code dari Blind SQL Injection level low di DVWA.
vulnerabilities/sqli_blind/source/low.php<?phpif( 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 errorsif( $num >0 ) {// Feedback for end userecho'<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 userecho'<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: