Cyber Security: ollama-assisted SQLmap
Revision as of 08:40, 22 April 2025 by Onnowpurbo (talk | contribs) (Created page with "Meskipun SQLMap sudah powerful secara otomatis, menambahkan Ollama bisa membantu: * '''Menganalisis hasil serangan''' SQLMap dengan pemahaman kontekstual. * '''Memberikan rek...")
Meskipun SQLMap sudah powerful secara otomatis, menambahkan Ollama bisa membantu:
- Menganalisis hasil serangan SQLMap dengan pemahaman kontekstual.
- Memberikan rekomendasi lanjutan (misalnya: cara eksfiltrasi data, pengamanan, mitigasi).
- Menyusun laporan otomatis berdasarkan hasil scanning SQLMap.
Langkah Integrasi SQLMap + Ollama
1. Install SQLMap dan Ollama
Pastikan keduanya sudah terpasang:
# Install SQLMap (jika belum) git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git cd sqlmap # Install Ollama curl -fsSL https://ollama.com/install.sh | sh
2. Pilih Model di Ollama
Rekomendasi model untuk tugas ini:
Model | Kelebihan |
---|---|
llama3 | Cepat, ringan, dan cukup pintar untuk reasoning teknikal. |
codellama | Bagus untuk membaca kode atau output teknis seperti SQL. |
mistral | Ringan, cepat, cukup pintar menangkap konteks eksploitasi. |
phi3 | Hemat resource, cocok untuk lingkungan terbatas. |
> ✅ Saran saya: gunakan `codellama` atau `llama3` — karena konteks SQL dan teknikal cukup penting.
3. Jalankan SQLMap dan Simpan Output ke File
python3 sqlmap.py -u "http://target.com/vuln.php?id=1" --batch --output-dir=output_sqlmap --dump-format=CSV
4. Ambil dan Kirim Output ke Ollama
Gunakan script Python berikut untuk mem-parsing hasil SQLMap, dan kirimkan ke model Ollama (misal dengan REST API `http://localhost:11434/api/generate`):
import requests def query_ollama(prompt, model="llama3"): response = requests.post("http://localhost:11434/api/generate", json={ "model": model, "prompt": prompt, "stream": False }) return response.json()['response'] # Contoh penggunaan: with open("output_sqlmap/log") as f: sqlmap_output = f.read() prompt = f""" Berikut adalah hasil output dari SQLMap: {sqlmap_output} Analisis hasil ini, sebutkan: 1. Apakah benar-benar ada SQL Injection? 2. Apa dampak keamanan terbesar? 3. Langkah apa yang bisa dilakukan attacker selanjutnya? 4. Bagaimana mencegahnya? Tolong analisis selengkap dan sejelas mungkin. """
response = query_ollama(prompt) print(response)
Script Python Wrapper
- Menjalankan SQLMap dari Python.
- Menyimpan hasil output.
- Kirim hasilnya ke Ollama.
- Mendapatkan analisis AI berdasarkan model lokal (misalnya `llama3`, `codellama`, atau `mistral`).
Python Script: `sqlmap_ollama_wrapper.py`
import subprocess import requests import os # Konfigurasi SQLMAP_PATH = "./sqlmap/sqlmap.py" # Ganti jika sqlmap di lokasi lain TARGET_URL = "http://target.com/vuln.php?id=1" # Ganti dengan target URL OUTPUT_DIR = "./sqlmap_output" OLLAMA_MODEL = "llama3" # Bisa diganti: llama3, codellama, mistral, phi3 OLLAMA_API = "http://localhost:11434/api/generate" def run_sqlmap(): print("[+] Menjalankan SQLMap...") command = [ "python3", SQLMAP_PATH, "-u", TARGET_URL, "--batch", "--output-dir", OUTPUT_DIR, "--flush-session" ] subprocess.run(command) def read_sqlmap_output(): log_path = os.path.join(OUTPUT_DIR, "log") if not os.path.exists(log_path): print("[!] File log SQLMap tidak ditemukan.") return "" with open(log_path, "r", encoding="utf-8", errors="ignore") as file: return file.read() def ask_ollama(prompt): print("[+] Mengirim prompt ke Ollama...") response = requests.post(OLLAMA_API, json={ "model": OLLAMA_MODEL, "prompt": prompt, "stream": False }) if response.status_code == 200: return response.json().get("response", "Tidak ada respon.") else: return f"Error dari Ollama: {response.text}" def main(): run_sqlmap() sqlmap_output = read_sqlmap_output() if not sqlmap_output.strip(): print("[!] Output SQLMap kosong.") return prompt = f""" Berikut adalah hasil output dari SQLMap terhadap URL: {TARGET_URL} {sqlmap_output} Tolong analisa hasil ini: 1. Apakah benar ditemukan SQL Injection? 2. Apa potensi dampaknya? 3. Apa langkah selanjutnya bagi attacker? 4. Bagaimana cara mencegah serangan ini? Analisa dengan lengkap dan jelas. """ response = ask_ollama(prompt) print("\n[+] ANALISIS OLLAMA:\n") print(response) if __name__ == "__main__": main()
Cara Menjalankan:
1. Download SQLMap:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
2. Jalankan Ollama dan Model:
ollama run llama3 # atau ollama run codellama
3. Jalankan Script:
python3 sqlmap_ollama_wrapper.py