Low
SQL Injection level Low on DVWA
Di bawah ini adalah source-code dari SQL Injection level low di DVWA.
Mencari Informasi
Terdapat form yang digunakan untuk memasukkan User ID. Jika saya coba inputkan '1
', maka akan muncul seperti berikut:
Untuk mencari tahu apakah form ini memiliki celah SQL Injection, kita bisa mencobanya dengan meng-inputkan kutip satu ('
) .
Dan hasilnya akan terdapat error. Ini berarti kita bisa melakukan SQL Injection.
Jika anda bertanya kenapa hasilnya bisa error? Jawabanya adalah karena ketika kita menginputkan kutip satu, maka query yang dijalankan oleh server akan seperti berikut:
Terlihat bahwa ada kutip satu yang tidak memiliki pasangannya, sehingga membuat query menjadi error.
Melakukan Serangan
Setelah ditentukan terdapat celah keamanan, kita coba inputkan payload berikut:
Sehingga hasil query yang dijalankan server adalah:
Ini akan mengakibatkan semua record tersedia pada tabel tersebut akan ditampilkan.
Melihat Versi DBMS
Kita juga bisa memodifikasi payload-nya. Contohnya seperti berikut untuk melihat informasi versi DBMS yang digunakan.
Tanda#
pada sql berfungsi untuk membuat komentar.
Sehingga hasil query yang dijalankan server adalah:
Terlihat bahwa DBMS yang dipakai adalah MariaDB versi 10.1.26.
Melihat Tabel yang mengandung kata 'user'
Melihat Kolom dari Tabel 'users'
Mendapatkan users dan password
Menggunakan SQLMap
Jika kalian tidak mau bingung dengan query di atas, kita bisa menggunakan tool SQLMap.
Pertama-tama kita tentukan terlebih dahulu method yang digunakan. Pada kasus ini, method yang digunakan adalah GET
. Dan endpoint pada kasus ini adalah:
Cek database yang tersedia:
Langsung saja kita jalankan SQLMap seperti berikut untuk mencari tahu database yang tersedia:
Keterangan:
-u
digunakan untuk menentukan URL atau endpoint.--cookie
digunakan untuk menetukan cookie.--dbs
digunakan untuk melihat database yang tersedia.
Hasilnya terdapat 2 database yang tersedia, yaitu dvwa dan information_schema.
Cek daftar tabel dari database dvwa:
Keterangan:
-D
digunakan untuk menentukan database.--tables
untuk melihat daftar tabel dari database (-D
).
Terdapat 2 tabel, yaitu guestbook dan users.
Cek kolom yang tersdia pada tabel users:
Keterangan:
-T
adalah tabel yang digunakan dari database-D
.--columns
adalah mencari kolom yang tersedia pada tabel-T
.
Terlihat ada beberapa kolom yang tersedia, oke kita lanjut dengan melakukan dump pada data tersebut.
Dump tabel users:
Keterangan:
--dump
akan meng-crack password yang di-hash. Anda akan ditanya apakah akan menggunakan dictionary yang ada di SQLMap atau dictionary kita sendiri.
Dan hasil nya adalah seperti gambar di atas.
Last updated