
Plugin HopLa Burp Suite Extender - Apporte des capacités d'IA, la prise en charge de l'autocomplétion et un ensemble de payloads utiles à Burp Suite.
💥 Toute la puissance de PayloadsAllTheThings, sans la surcharge.
Cette extension enrichit Burp Suite avec une autocomplétion intelligente et des payloads intégrés pour simplifier les tests d'intrusion. Elle prend en charge l'intégration de fournisseurs d'IA tels qu'Ollama, OpenAI et Gemini pour offrir des fonctionnalités avancées comme le chat et la génération/transformation de contenu. Vous pouvez également ajouter vos propres payloads pour l'adapter à vos besoins !
Développé par Alexis Danizan
Publié en open source par Synacktiv 🥷
Fonctionnalités :

Par défaut, HopLa est fourni avec un ensemble de payloads intégrés. Vous pouvez les étendre en chargeant votre propre fichier YAML personnalisé via le menu supérieur. (Voir le fichier de payloads par défaut pour référence.)
Les fournisseurs d'IA peuvent être configurés en important votre configuration YAML (voir Configurer les fournisseurs d'IA)
Plusieurs raccourcis clavier sont prédéfinis par défaut et peuvent être personnalisés via les fichiers de configuration.
Ctrl+Q - Ouvrir le menu Payload LibraryCtrl+J - Lancer le AI ChatCtrl+Alt+O - Ouvrir le menu Quick ActionsCtrl+L - Ouvrir le menu Search & ReplaceCtrl+M - Insérer un payload Burp CollaboratorCtrl+Alt+J - Ouvrir le Custom Keywords ManagerSi vous utilisez i3, ajoutez la ligne suivante à votre $HOME/.config/i3/config pour activer le mode flottant pour la fenêtre :
for_window [class=".*burp-StartBurp.*" title="^ $"] floating enable
HopLa prend en charge plusieurs fournisseurs d'IA (OpenAI, Gemini, Ollama), mais l'autocomplétion propulsée par l'IA n'est disponible qu'avec Ollama.
Le fichier de configuration YAML pour l'IA est structuré comme suit (un fichier d'exemple peut être exporté depuis le menu 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.
Pour la version BApp Store de l'extension, seul le fournisseur Burp est pris en charge.
Le fichier YAML des payloads suit la structure suivante (il n'y a pas de limite d'imbrication) :
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"
Pour ajouter uniquement des mots-clés d'autocomplétion qui n'apparaissent pas dans le menu, vous pouvez les ajouter dans la catégorie keywords :
keywords:
- name: "Headers"
values:
- "Accept"
- "Accept-Charset"
Pour activer d'autres fournisseurs, définissez def externalAIEnabled = true dans build.gradle.
Compilez avec Docker ou 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
Exécutez gradle build et vous aurez le plugin prêt dans releases/HopLa.jar.
Pour éviter de déclencher des alertes antivirus, le fichier YAML des payloads est chiffré au moment de la compilation.
Merci beaucoup pour votre travail formidable !
Publié sous licence BSD 3-Clause, voir LICENSE pour plus d'informations
N'hésitez pas à signaler des bugs, suggérer des fonctionnalités ou envoyer des pull requests.
| Fonctionnalités | Ollama | Gemini | OpenAI |
|---|
| Chat | ✅ Oui | ✅ Oui | ✅ Oui |
| Autocomplétion | ✅ Oui | ❌ Non | ❌ Non |
| Action rapide | ✅ Oui | ✅ Oui | ✅ Oui |