Tugas II4033 Forensik Digital

Elisabeth Levana 18218032

Damn Vulnerable Web Application (DVWA) adalah website yang dirancang untuk melakukan eksplorasi terhadap celah keamanan, seperti SQL injection, Command Injection, Brute Force, CSRF, XSS dan lain-lain.

Untuk menggunakan DVWA, kita membutuhkan sebuah web server sebagai tempat untuk instalasi DVWA, salah satunya bisa menggunakan web server XAMPP. Tutorial untuk instalasi DWVA pada Windows dengan menggunakan XAMPP dapat dilihat pada video berikut:

Command Injection

Command injection adalah salah satu jenis serangan, di mana hacker dapat menjalankan perintah pada komputer target secara sewenang-wenang. Pada serangan ini, hacker akan memiliki hak akses yang sama dengan aplikasi yang rentan tersebut. Celah ini memunginkan hacker untuk memasukkan perintah (command) melalui web aplikasi dan akan diteruskan dan dijalankan oleh sistem operasi dengan privilege user web aplikasi.

Langkah-langkah ketika melakukan hands on:

  • Menampilkan informasi IP address dengan menggunakan perintah ipconfig pada command prompt
  • Pada browser, akses laman login DVWA dengan mengakses ipaddress/DVWA. Secara default, username menggunakan admin dan Passwordnya adalah password
  • Setelah masuk ke dalam sistem, sesuaikan tingkat DVWA security sesuai dengan tingkatan yang akan dilatih. Pada latihan kali ini, akan digunakan low
  • Klik command injection, akan terdapat fitur untuk PING suatu ip/web melalui aplikasi. Sebagai contoh, dapat dilakukan PING terhadap ip 8.8.8.8
  • Akan terlihat bahwa perintah PING diteruskan ke sistem operasi, ketika tidak terdapat filter maka kita dapat mengeksploitasi dengan memasukkan perintah (command) milik sistem informasi.
  • Untuk melakukan beberapa perintah dalam satu command, dapat digunakan beberapa teknik seperti menggunakan separator yaitu operator ; (titik koma), | (pipeline) atau && (operator and).
  • Perintah yang dapat dilakukan tidak hanya terbatas PING, namun juga dapat dilakukan untuk perintah lain seperti systeminfo untuk menampilkan informasi konfigurasi suatu komputer dan sistem operasinya secara detail.
  • Selain itu dapat dijalankan perintah 8.8.8.8|dir untuk listing folder yang dimiliki oleh komputer.

— White boxing

Berikut adalah source-code dari command injection level low di DVWA

Dalam source-code, kita dapat melihat bahwa PHP hanya meminta input ip sebagai variabel target. Selanjutnya, ternyata tidak ada sanitasi setelah melakukan input pada form DVWA (Enter an IP address:…). Hal ini menyebabkan ketika kita menambahkan perintah lainnya pada input, maka perintah akan tetap dilakukan oleh sistem.

Untuk melihat perbedaannya, berikut adalah source-code dari command injection level medium di DVWA

Dari source-code, terdapat blacklist terhadap operator && dan ; yang dibuat menjadi string kosong (‘’), mengakibatkan kita tidak bisa menggunakan operator tersebut untuk menambah perintah dalam satu command. Oleh karena itu, untuk melakukan beberapa perintah dalam satu command pada command injection level medium, kita harus menggunakan operator | (pipeline).

SQL Injection

SQL Injection adalah teknik serangan yang digunakan untuk mencuri informasi penting dari sebuah situs web seperti username dan password, mengubah database, menginput konten berbahaya dan hal lainnya. Hacker akan memasukkan perintah SQL ke dalam database server sehingga dapat masuk ke dalam sistem tanpa harus memiliki username dan password administrator. Hal ini dapat terjadi karena kurangnya penanganan terhadap karakter-karakter seperti tanda petik satu atau karakter double minus yang menyebabkan suatu aplikasi dapat disisipi hacker dengan perintah SQL.

Langkah-langkah ketika melakukan hands on:

  • Setelah login ke dalam laman dvwa, klik SQL injection. Akan ada form untuk memasukkan input User ID.
  • Jika memasukkan input ‘1’, maka akan muncul hasil sebagai berikut:
  • Untuk mengetahui apakah form memiliki celah SQL injection, dapat dicoba dengan menginput (tanda kutip satu)
  • Jika yang muncul adalah pesan error, maka kita dapat melakukan SQL Injection. Hal ini karena kita kita menginput, maka query yang dijalankan server sebagai berikut. Terdapat kutip satu yang tidak memiliki pasangan, sehingga query menjadi error.
  • Selanjutnya, kita dapat coba menginput ’ or ‘0’ = ‘0
  • Serangan input ini akan menampilkan semua record yang tersedia pada tabel. Hal ini karena 0=0 akan selalu bernilai True, sehingga sistem tidak akan melihat value pada sebelah kiri operator or dan semua record akan ditampilkan.
  • Selanjutnya, kita dapat coba menginput ‘ or ‘0’ = ‘0’ union select null, version() # untuk mengambil version dari database.
  • Selanjutnya, kita dapat coba menginput ‘ or ‘0’ = ‘0’ union select null, concat(user,0x0a,password) from users # untuk mendapatkan user dan password yang tentunya sudah di-hash
  • Untuk mendapatkan nama tabel dan jumlah kolom, kita dapat menginput ’ union all select column_name, database() from INFORMATION_SCHEMA.columns WHERE table_schema=database()#

— White boxing

Berikut adalah source-code dari SQL injection level low di DVWA

Information System and Technology Student at Institut Teknologi Bandung.

Information System and Technology Student at Institut Teknologi Bandung.