×

Damn Vulnerable Web Application – Brute Force – Low

Damn Vulnerable Web Application – Brute Force – Low

579 Views

Damn Vulnerable Web Application (DVWA) adalah aplikasi web PHP/MySQL yang sangat rentan. Tujuan utamanya adalah untuk menjadi bantuan bagi profesional keamanan untuk menguji keterampilan dan alat, membantu pengembang web lebih memahami proses mengamankan aplikasi web dan untuk membantu tester tentang keamanan aplikasi web. Ini adalah tulisan pribadi sebagai pengingat saja, jika pembahasannya loncat-loncat harap maklum.

Untuk membuat DVWA, kita bisa menggunakan yang sudah tersedia yaitu https://github.com/digininja/DVWA.  Beberapa skenario yang bisa kita uji yaitu Brute Force, Command Injection, CSRF, File Inclusion, File Upload, Insecure CAPTCHA, SQL Injection, SQL Injection (Blind), Weak Session IDs, XSS (DOM), XSS (Reflected), XSS (Stored), CSP Bypass, JavaScript. Kalian setidaknya memiliki pengetahuan dasar pada protokol HTTP.  DVWA yang dipakai nanti menggunakan bahasa php, apache, dan mysql. Kalian bebas bisa menggunakan package install seperti XAMPP ataupun LAMPP. Silahkan kalian download saja menggunakan git  git clone https://github.com/digininja/DVWA.git

Persiapan Server DVWA

Untuk mempersiapkan server cukup mudah, kalian install terlebih dahulu aplikasi XAMPP/LAMPP. Setelah kalian install XAMPP dan LAMMP, copy saja folder DVWA yang telah didownload sebelumnya kedalam folder httdocs.

Langkah selanjutnya rename saja config/config.inc.php.dist menjadi config/config.inc.php. Lakukan setupa dengan membuka browser untuk akses url http://127.0.0.1/dvwa/setup.php. Berikut tampilkan website DVWA nya

Setup Database

Untuk mempersiapkan databasenya, ubah saja informasi mengenai username dan password di config/config.inc.php menjadi sesuai server yang kita punya terutama untuk username dan password nya. Seperti berikut

$_DVWA = array();
$_DVWA[ 'db_server' ]   = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'root'; #semula dvwa
$_DVWA[ 'db_password' ] = ''; #semula p@ssw0rd
$_DVWA[ 'db_port'] = '3306';

Bila sudah klik saja tombol create/reset database – bila berhasil akan tampil beberapa informasi

  • Database has been created.
  • ‘users’ table was created.
  • Data inserted into ‘users’ table.
  • ‘guestbook’ table was created.
  • Data inserted into ‘guestbook’ table.
  • Backup file /config/config.inc.php.bak automatically created
  • Setup successful!

akan berubah halamanya menjadi berikut

See also  Pakai Browser TOR untuk Anonim di Akses Web

Login saja dengan informasi berikut

Default username = admin

Default password = password

Serangan Brute Force

Bruteforce Password adalah bentuk serangan dengan melakukan uji coba login secara berkali-kali. Untuk mengujinya bisa kita akses url diatas http://localhost/dvwa/vulnerabilities/brute/. Untuk menguji brute force – low methode GET yaitu localhost/dvwa/vulnerabilities/brute/?username=admin&password=passwordk&Login=Login dan butuh cookies. Mari kita buka file /Applications/XAMPP/xamppfiles/htdocs/DVWA/vulnerabilities/brute/index.php

didalamnya menggunakan cookies sebagai parameter uji coba yaitu security dan melewatkan 3 kode yang bisa dipanggil yaitu

$method            = 'GET';
$vulnerabilityFile = '';
switch( $_COOKIE[ 'security' ] ) {
   case 'low':
      $vulnerabilityFile = 'low.php';
      break;
   case 'medium':
      $vulnerabilityFile = 'medium.php';
      break;
   case 'high':
      $vulnerabilityFile = 'high.php';
      break;
   default:
      $vulnerabilityFile = 'impossible.php';
      $method = 'POST';
      break;
}


Mari kita lihat menggunakan software Burp Suite agar dapat modifikasi cookies nya nanti. Sekarang kita lihat kode low.php /Applications/XAMPP/xamppfiles/htdocs/DVWA/vulnerabilities/brute/source/low.php yang nanti kita akan uji coba login via GET yaitu ada paramater username dan password

<?php

if( isset( $_GET[ 'Login' ] ) ) {
    // Get username
    $user = $_GET[ 'username' ];

    // Get password
    $pass = $_GET[ 'password' ];
    $pass = md5( $pass );

    // Check the database
    $query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
    $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>' );

    if( $result && mysqli_num_rows( $result ) == 1 ) {
        // Get users details
        $row    = mysqli_fetch_assoc( $result );
        $avatar = $row["avatar"];

        // Login successful
        echo "<p>Welcome to the password protected area {$user}</p>";
        echo "<img src=\"{$avatar}\" />";
    }
    else {
        // Login failed
        echo "<pre><br />Username and/or password incorrect.</pre>";
    }

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

?>

Sehingga untuk uji coba login berikut

Bila kita akan menguji coba untuk brute force gunakan settingan cookies low

Lebih suka menggunakan burp suite karena harus login terlebih dahulu kemudian melakukan uji buat brute force. Kemudian uji coba brute force intruder dengan settingan berikut

GET /dvwa/vulnerabilities/brute/?username=mulkan&password=§12345§&Login=Login HTTP/1.1
Host: localhost
sec-ch-ua: "Not;A=Brand";v="99", "Chromium";v="106"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "macOS"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.62 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: PHPSESSID=aab77fb04ec9fc2012044e6f020e9c7e; security=low
Connection: close

nanti bila berhasil akan ada tulisannya jika berhasil

See also  Install Python 2.7 dan 3.8

 

 

You May Have Missed