
HopLa Burp Suite Extender plugin - Porta funzionalità di IA, supporto all'autocompletamento e un set di payload utili a Burp Suite
💥 Tutta la potenza di PayloadsAllTheThings, senza overhead.
Questa estensione potenzia Burp Suite con completamento automatico intelligente e payload integrati per semplificare i test di intrusione. Supporta l'integrazione con provider IA come Ollama, OpenAI e Gemini per offrire funzionalità avanzate come la chat e la generazione/trasformazione di contenuti. Puoi anche aggiungere i tuoi payload per personalizzarla in base alle tue esigenze!
Sviluppata da Alexis Danizan
Rilasciata come open source da Synacktiv 🥷
Funzionalità:

Per impostazione predefinita, HopLa include un set di payload integrato. Puoi estenderli caricando il tuo file YAML personalizzato tramite il menu in alto. (Vedi il file dei payload predefiniti come riferimento.)
I provider IA possono essere configurati importando la tua configurazione YAML (vedi Configurare i provider IA)
Diverse scorciatoie da tastiera sono già predefinite e possono essere personalizzate tramite i file di configurazione.
Ctrl+Q - Apri il menu Libreria PayloadCtrl+J - Avvia la Chat IACtrl+Alt+O - Apri il menu Azioni RapideCtrl+L - Apri il menu Cerca e SostituisciCtrl+M - Inserisci un payload Burp CollaboratorCtrl+Alt+J - Apri il Gestore Parole Chiave PersonalizzateSe utilizzi i3, aggiungi la seguente riga al tuo $HOME/.config/i3/config per abilitare la modalità fluttuante per la finestra:
for_window [class=".*burp-StartBurp.*" title="^ $"] floating enable
HopLa supporta più provider IA (OpenAI, Gemini, Ollama), ma il completamento automatico basato su IA è disponibile solo con Ollama.
Il file di configurazione YAML per l'IA è strutturato come segue (un file di esempio può essere esportato dal menu di HopLa):
shortcut_ai_chat: Ctrl+J
shortcut_quick_action: Ctrl+Alt+O
#autocompletion_min_chars: 1 # Minimum input length for AI-powered autocompletion (default: 1)
providers:
OPENAI:
enabled: true
chat_model: gpt-4.1
chat_endpoint: https://api.openai.com/v1/chat/completions
#chat_model_system_prompt: REPLACE_ME
quick_action_model: gpt-4.1
#quick_action_system_prompt: REPLACE_ME
quick_action_endpoint: https://api.openai.com/v1/chat/completions
headers:
Authorization: "Bearer REPLACE_ME"
proxy:
enabled: true
host: 127.0.0.1
port: 5555
username: user123
password: pass123
type: SOCKS # SOCKS or HTTP
GEMINI:
enabled: true
chat_model: gemini-2.0-flash
chat_endpoint: https://generativelanguage.googleapis.com/v1beta/models/@model:streamGenerateContent?alt=sse&key=@key #HopLa replace @key with api_key value
#chat_model_system_prompt: REPLACE_ME
quick_action_endpoint: https://generativelanguage.googleapis.com/v1beta/models/@model:streamGenerateContent?alt=sse&key=@key #HopLa replace @key with api_key value
#quick_action_system_prompt: REPLACE_ME
api_key: REPLACE_ME
proxy:
enabled: true
host: 127.0.0.1
port: 5555
username: user123
password: pass123
type: SOCKS # SOCKS or HTTP
OLLAMA:
enabled: true
completion_model: qwen2.5-coder:3b
completion_endpoint: http://localhost:11434/api/generate
#completion_model_system_prompt: REPLACE_ME
completion_prompt: "<|fim_prefix|>@before<|fim_suffix|>@after<|fim_middle|>" # @input, @section, @before, @after
completion_params:
seed: 42
temperature: 0.0
top_p: 1.0
top_k: 0
num_predict: 15
completion_stops:
- "\n"
- "<|fim_middle|>"
chat_model: qwen2.5-coder:3b
#chat_system_prompt: REPLACE_ME
chat_endpoint: http://localhost:11434/api/chat
#chat_stops:
# - "\n"
#chat_params:
# temperature: 0.0
quick_action_model: qwen2.5-coder:7b
quick_action_endpoint: http://localhost:11434/api/generate
#quick_action_system_prompt: REPLACE_ME
#quick_action_stops:
# - "\n"
#quick_action_params:
# temperature: 0.0
BURP:
enabled: true
#chat_system_prompt: REPLACE_ME
chat_params:
temperature: 0.0
#quick_action_system_prompt: REPLACE_ME
quick_action_params:
temperature: 0.0
defaults:
chat_provider: OLLAMA # OLLAMA, OPENAI, GEMINI, BURP
completion_provider: OLLAMA # OLLAMA, OPENAI, GEMINI, BURP
quick_action_provider: OLLAMA # OLLAMA, OPENAI, GEMINI, BURP
timeout_sec: 60
prompts:
- name: technologies
description: "Fingerprint web technologies"
content: |
Analyze the following HTTP response and identify the web technologies used.
List your reasoning for each technology detected.
quick_actions:
- name: multipart
description: "Transform request to multipart"
content: |
Transform the following HTTP POST request into a multipart/form-data request:
- name: json
description: "Transform request to json"
content: |
Transform the following HTTP POST request into a JSON request:
- name: headers_name
description: "Extract HTTP header names"
content: |
From the HTTP request below, extract only the unique header names. List each name on a separate line. Do not include header values.
Per la versione dell'estensione su BApp Store, è supportato solo il provider Burp.
Il file YAML dei payload segue questa struttura (non ci sono limiti di annidamento):
shortcut_search_and_replace: Ctrl+L
shortcut_payload_menu: Ctrl+Q
shortcut_collaborator: Ctrl+M
shortcut_add_custom_keyword: Ctrl+Alt+J
categories:
- name: "XSS"
payloads:
- name: "Fingerprint"
value: "\"><h1>"
shortcut: Ctrl+k # Use this shortcut to insert a payload
- name: "Path Traversal"
categories:
- name: "Simple"
payloads:
- name: ""
value: "../"
- name: "Simple 2"
payloads:
- name: ""
value: "../"
keywords:
- name: "Headers"
values:
- "Accept"
- "Accept-Charset"
Per aggiungere solo parole chiave di completamento automatico che non compaiono nel menu, puoi inserirle nella categoria keywords:
keywords:
- name: "Headers"
values:
- "Accept"
- "Accept-Charset"
Per abilitare altri provider, imposta def externalAIEnabled = true in build.gradle.
Compila utilizzando Docker o Podman:
$ podman build -t hopla .
$ podman run --rm -v "$PWD":/data hopla gradle build
Starting a Gradle Daemon (subsequent builds will be faster)
> Task :compileJava
> Task :encryptResource
Encrypting /data/src/main/resources/default-payloads.yaml to /data/build/encryptedResources/default-payloads.enc.yaml
> Task :processResources
> Task :classes
> Task :jar
> Task :assemble
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build
BUILD SUCCESSFUL in 11s
4 actionable tasks: 4 executed
$ ls releases
HopLa.jar
Esegui gradle build e avrai il plugin pronto in releases/HopLa.jar.
Per evitare di attivare gli avvisi antivirus, il file YAML dei payload viene criptato in fase di compilazione.
Grazie mille per il vostro fantastico lavoro!
Rilasciata sotto licenza BSD 3-Clause, vedi LICENSE per maggiori informazioni
Non esitare a segnalare bug, suggerire funzionalità o inviare pull request.
| Funzionalità | Ollama | Gemini | OpenAI |
|---|
| Chat | ✅ Sì | ✅ Sì | ✅ Sì |
| Completamento automatico | ✅ Sì | ❌ No | ❌ No |
| Azione rapida | ✅ Sì | ✅ Sì | ✅ Sì |