High
Blind SQL Injection level High on DVWA
Di bawah ini adalah source-code dari Blind SQL Injection level high di DVWA.
vulnerabilities/sqli_blind/source/high.php
<?php
if( isset( $_COOKIE[ 'id' ] ) ) {
// Get input
$id = $_COOKIE[ 'id' ];
// Check database
$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id' LIMIT 1;";
$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 {
// Might sleep a random amount
if( rand( 0, 5 ) == 3 ) {
sleep( rand( 2, 4 ) );
}
// 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 terdapat perbedaan tentang cara melakukan inputan. Sekarang form inputan berada di halaman cookie-input.php (lalu nilanya dijadikan cookie) dan hasilnya akan ditampilkan di halaman index.php.

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

Setelah mengetahui pesan jika melakukan kesalahan, selanjutnya saya mencoba menggunakan payload berikut untuk melihat apakah hasilnya bernilai true atau false:
1 or 1 = 1#

Dan hasilnya true! Selanjutnya kita akan menggunakan SQLMap. 😁
Melakukan Serangan
Gunakan perintah berikut lalu jalankan:
sqlmap -u "http://172.17.0.2/vulnerabilities/sqli_blind/?id=1" --cookie="PHPSESSID=jusi9ccuu6qfk9m3tqdf103jo2; security=high" --dbs

Berhasil! Terlihat bahwa terdapat 2 database yang tersedia.
Sama seperti SQL Injection level high, saya belum bisa menjelaskan kenapa ini bisa terjadi. ☹
Tetap semangat! Happy Hacking! 😊
Last updated
Was this helpful?