KODE UNIT J.62090.
0
JUDUL UNIT SQL Map
DISUSUN Drs. Koes Wiyatmoko, [Link]
Riko Iman Decamarta, SST.
MODUL PRAKTIK 1. SQL MAP
TUJUAN PEMBELAJARAN DAN CAPAIAN PEMBELAJARAN –
MATERI SQLMAP NO. TUJUAN PEMBELAJARAN CAPAIAN
PEMBELAJARAN
mengeksploitasi SQL terhadap SQL Injection
1 2 Injection secara aman
Mahasiswa mampu
Menampilkan dan
menjalankan perintah
menganalisis struktur
dasar SQLMap dan
database dari hasil
3 4 5 membaca hasil
eksploitasi yang berhasil output-nya
Menerapkan SQLMap
dengan opsi lanjutan Mahasiswa dapat
Memahami konsep seperti pengaturan risk, menggunakan opsi
dasar SQL Injection dan level, dan tamper script SQLMap seperti --dbs,
peran SQLMap sebagai Mahasiswa mampu --tables, dan -- dump
alat otomatisasi menjelaskan apa itu untuk menggali informasi
Mengidentifikasi SQL Injection dan
Mahasiswa mampu
parameter aplikasi web bagaimana SQLMap menggunakan opsi
yang rentan terhadap digunakan untuk lanjutan SQLMap untuk
SQL Injection mengujinya
bypass WAF atau
Mengoperasikan Mahasiswa dapat memperluas cakupan
SQLMap untuk menentukan parameter injeksi
mendeteksi dan URL atau form yang
mungkin rentan
6 Menunjukkan sikap etis Mahasiswa menyadari pentingnya
dalam menggunakan alat penggunaan SQLMap hanya pada
pengujian keamanan sistem yang sah dan dengan izin
tertulis
1.2. PENDAHULUAN SQLMAP
1.2.1. Apa itu SQLMap?
SQLMap adalah alat open-source yang digunakan untuk
mengotomatisasi proses deteksi dan eksploitasi SQL Injection pada
aplikasi web. SQLMap mampu :
a. Menemukan celah SQLi
b. Mengambil database, tabel, dan data
c. Mengeksekusi perintah OS (jika memungkinkan)
d. Menangani WAF (Web Application Firewall) dengan tamper script
1.2.2. Fitur Utama SQLMap.
a. Deteksi otomatis SQL Injection
b. Dump database & table
c. Eksekusi perintah OS (jika memungkinkan)
d. Bypass WAF dengan tamper script
e. Support GET, POST, cookie, header, dll.
1.2.3. Perintah Dasar SQLMap.
Perintah untuk melihat semua opsi yang tersedia di SQLMap :
Gambar 1. Format dasar perintah SQLMap
Format praktik :
Gambar 2. Scan dengan SQLMap.
Kemudian untuk mengetahui opsi perintah di Sqlmap –help, perintahnya
sebagai berikut :
Gambar 3. Mengetahui Opsi Command SQLMap
Hasil dari perintah diatas :
Gambar 4. Hasil Opsi Command SQLMap
Tabel 1. Keterangan arti Opsi Command SQLMap
Opsi Arti
-u URL target yang akan diuji
--data Data POST jika injection ada di form (misalnya login) --cookie
Menyisipkan cookie (jika dibutuhkan untuk login/session) --dbs
Menampilkan daftar database
--tables Menampilkan tabel dalam database tertentu
--columns Menampilkan kolom dalam tabel tertentu
--dump Mengambil (dump) data dari tabel tertentu
--batch Menjawab semua prompt secara otomatis (non-interaktif) --risk
dan --level Mengatur tingkat intensitas dan agresivitas serangan --proxy
Mengarahkan request melalui proxy seperti Burp Suite --tamper
Menggunakan tamper script untuk menghindari deteksi WAF
--technique Menentukan teknik injeksi (B, E, U, S, T, Q)
1.3. PRAKTIK :
1.3.1. Gunakan target legal:
[Link]
1.3.2. Salah satu URL vulnerable didalamnya ditemukan vulner / kerentanan
seperti berikut :
[Link]
Untuk menemukan vulner / kerentanan ada beberapa tehnik
penggunaan tool OWASP Zap, Hackbar, dan beberapa lagi yang tidak
bisa saya sebutkan di sini. Namun diantara yang paling simple seperti
berikut :
Klik salah satu
isi table artists
Gambar 5. Target web
Gambar 6. Tampilan data astists
PENJELASAN Gambar 6.:
Pada gambar tersebut di URL terlihat pada lingkaran merah
….?artist=1, ada kecenderungan jika url seperti itu terdapat vulner /
kerentanan, dan untuk melakukan test, tambahkan tanda petik ‘ setelah
….?artist=1’.
Gambar berikut hasil dari url setelah ditambah petik ‘ , dan muncul
kalimat seperti berikut :
Gambar 7. Indikasi Error
1.3.3. Demo Penggunaan SQLMap
a. Langkah 1 : Mengidentifikasi apakah parameter artist rentan terhadap
SQL Injection.
Target : [Link]
Data yang didapat dari Gambar 5, 6 dan 7 maka kita simpulkan url
berpotensi menjadi celah kerentanan kita jalankan sqlmap dan kita
paste kan url tersebut seperti Gambar 8, yang merupakan perintah
untuk mengidentifikasi apakah parameter artist rentan terhadap SQL
Injection.
Gambar 8. Identifikasi kerentanan
Penjelasan gambar 8 :
i. -u : Menunjukkan URL target.
ii. artist=1 : Parameter yang diuji.
iii. –batch : Mode otomatis (jawaban default digunakan).
Hasil dari command diatas, SQLMap menyisipkan payload ke
parameter artist, seperti artist=-1 AND 1=1, dan beberapa payload
seperti terlihat di Gambar 9. Ini menunjukkan teknik SQLMap berhasil
menguji, menemukan dan mengkonfirmasi kerentanannya.
Gambar 9. Payload SQLMap
b. Langkah 2 : Menemukan Database.
Ketikan #SQLMap………… dst seperti Digambar 10..
Gambar 10. Scan untuk menemukan database.
Pada gambar sepuluh terlihat ada 2 (dua) database ditemukan yaitu :
1. acuart dan
2. information_schema.
c. Melihat Daftar Tabel dalam Database
Database-nya bernama acuart, maka sintax-nya seperti berikut :
Gambar 11. Scan Tabel
d. Melihat Kolom dalam Tabel
Dari table yang ada terlihat ada nama tabel users, sintax berikutnya :
Gambar 12. Scan mendapatkan isi Field Tabel users
e. Dump Data dari Tabel
Definisi:
Dump merupakan proses mengambil dan menampilkan isi data
sebenarnya dari suatu tabel dalam suatu database.
Dalam konteks SQLMap, dump berarti:
Menyuruh SQLMap mengekstrak dan menampilkan semua baris
dan kolom dari tabel tertentu ke layar (dan ke file log), sehingga
kita bisa melihat isi asli dari database target.
Gambar 13. Hasil Dump
PENJELASAN Gambar 13. Telah ditemukan satu record yang berisi
password yang tidak di hash dimana sebenarnya masih ada password
yang lain namun karena di hash maka SQLMap tidak bisa mela
6 . Menambah Detail Serangan (Risk & Level)
bash
SalinEdit
sqlmap -u "[Link] --risk=3 --level=5
--batch --risk=3: Tes yang berisiko tinggi (misalnya menggunakan fungsi
waktu) --level=5: Cakupan parameter lebih luas (bisa POST, header, dll)
⭱⭲⭳ 7. Deteksi WAF
bash
SalinEdit
sqlmap -u "[Link] --identify-waf
8 ࡞ࡠࡡ. Jika Terlindungi WAF (Tamper Script)
bash
SalinEdit
sqlmap -u "[Link] --
tamper=between,randomcase --batch
Tamper script memodifikasi payload untuk menghindari deteksi oleh WAF.
ᨾᨿᩀᩁᩂ Tips Mengajar & Latihan
Pastikan peserta memahami konsep parameter GET/POST dan SQL Injection
manual terlebih dahulu.
Gunakantools seperti Burp Suite untuk mendemonstrasikan bagaimana
SQLMap bekerja di belakang layar.
Gunakan proxy dan verbose output untuk melihat semua request
SQLMap: bash
SalinEdit
sqlmap -u "[Link] -v 3 --
proxy="[Link]
Kesimpulan ݝݜݛݚ
Tujuan Perintah
Scan sederhana sqlmap -u "URL" --batch
Daftar database --dbs
Daftar tabel -D nama_db --tables
Daftar kolom -D nama_db -T nama_tabel --columns
Ambil data --dump
Bypass WAF --tamper=nama_script
Deteksi WAF --identify-waf
1.1. VULNERABILITY SCANNING
Langkah awal untuk melakukan scanning/ mengecek apa web target apakah
vulnerable terhadap SQL Injection atau tidak. Perintah yang gunakan Jadi pertama
kita akan memasukkan perintah "sqlmap -u [Link] --dbs". Di
sini "sqlmap -u [Link] adalah untuk mengecek Uniform
Resource Locator (URL) target apakah bisa di injeksi, sedangkan --dbs untuk
mendapatkan nama database yang tersedia.
1.2.