Pengaturan --level dan --risk pada SQLMap menentukan seberapa mendalam dan agresif alat uji penetrasi ini melakukan pemindaian kerentanan SQL Injection (SQLi). Parameter --level (1-5) mengontrol jenis payload yang diujiβmulai dari parameter GET/POST standar hingga cookie, header HTTP, dan User-Agent. Sementara itu, parameter --risk (0-3) menentukan tingkat bahaya atau potensi risiko dari query yang dieksekusi terhadap database target, termasuk perintah yang berpotensi memodifikasi data atau menyebabkan penundaan waktu yang lama.
Tabel Matriks Level SQLMap
Berikut adalah rincian cakupan pengujian berdasarkan nilai parameter --level yang digunakan saat menjalankan perintah SQLMap.
| Level | Cakupan Pengujian (Payload Target) | Keterangan |
|---|---|---|
| 1 | Parameter GET dan POST | Nilai default; menguji parameter URL dan data formulir POST standar. |
| 2 | Parameter Cookie | Menambahkan pengujian pada nilai Cookie HTTP. |
| 3 | User-Agent dan Referer Header | Menambahkan pengujian pada header HTTP User-Agent dan Referer. |
| 4 | Header HTTP Tambahan | Memperluas pengujian ke header HTTP lainnya seperti Host atau X-Forwarded-For. |
| 5 | Semua Vektor Tersedia | Melakukan pengujian menyeluruh pada seluruh titik injeksi potensial termasuk kustom header tingkat lanjut. |
Tabel Matriks Risk SQLMap
Parameter --risk mengatur tingkat keagresifan payload yang dikirimkan. Nilai default adalah 1, dan kenaikan tingkat risiko memerlukan kehati-hatian ekstra.
| Risk | Tingkat Agresivitas | Jenis Query & Dampak Potensial |
|---|---|---|
| 0 | Sangat Rendah | Hanya payload SQLi standar yang paling aman. |
| 1 | Rendah (Default) | Sebagian besar payload standar yang aman untuk sebagian besar database. |
| 2 | Sedang | Menambahkan payload berbasis ORDER BY yang dapat membebani kinerja server. |
| 3 | Tinggi | Menambahkan payload berbasis UPDATE, DELETE, atau perintah berat yang berisiko merusak integritas data jika tidak berhati-hati. |
Contoh Penggunaan Sintaks
Penerapan parameter ini disesuaikan dengan kebutuhan audit keamanan. Berikut adalah contoh perintah dasar untuk menjalankan SQLMap dengan level dan risiko tertentu:
sqlmap -u "http://target.com/vuln.php?id=1" --level=3 --risk=2 --batch
Langkah-Langkah Teknis Penggunaan
- Tentukan target URL yang memiliki izin sah untuk diuji penetrasinya.
- Mulai pemindaian dasar dengan
--level=1dan--risk=1untuk mendeteksi kerentanan yang mudah diakses. - Jika tidak ditemukan kerentanan pada parameter standar, tingkatkan nilai
--levelke 2 atau 3 untuk memeriksa header Cookie atau User-Agent. - Gunakan
--risk=2atau--risk=3hanya jika Anda menduga adanya kerentanan kompleks yang memerlukan payload berat, serta pastikan sistem target berada di lingkungan staging atau memiliki izin tertulis (rules of engagement).
Tips Troubleshooting Lapangan
Jika pemindaian memakan waktu terlalu lama atau memicu sistem pencegahan intrusi (IDS/IPS), kurangi nilai --risk kembali ke 1 dan gunakan opsi penundaan waktu seperti --delay atau --random-agent untuk menghindari pemblokiran IP penguji.