
HopLa Burp Suite Extender 플러그인 - Burp Suite에 AI 기능, 자동 완성 지원, 유용한 페이로드 세트를 제공합니다
💥 오버헤드 없이 PayloadsAllTheThings의 모든 기능을 제공합니다.
이 확장 기능은 Burp Suite에 지능형 자동 완성과 내장 페이로드를 추가하여 침투 테스트를 간소화합니다. Ollama, OpenAI, Gemini와 같은 AI 제공업체와의 통합을 지원하여 채팅 및 콘텐츠 생성/변환과 같은 고급 기능을 제공합니다. 또한 사용자 정의 페이로드를 추가하여 필요에 맞게 조정할 수 있습니다!
개발: Alexis Danizan
오픈소스 공개: Synacktiv 🥷
기능:

기본적으로 HopLa에는 내장 페이로드 세트가 포함되어 있습니다. 상단 메뉴를 통해 사용자 정의 YAML 파일을 로드하여 페이로드를 확장할 수 있습니다. (기본 페이로드 파일 참조)
AI 제공업체는 YAML 구성을 가져와 설정할 수 있습니다 (AI 제공업체 구성 참조)
기본적으로 여러 키보드 단축키가 사전 정의되어 있으며 구성 파일을 통해 사용자 지정할 수 있습니다.
Ctrl+Q - 페이로드 라이브러리 메뉴 열기Ctrl+J - AI 채팅 실행Ctrl+Alt+O - 빠른 작업(Quick Actions) 메뉴 열기Ctrl+L - 검색 및 바꾸기 메뉴 열기Ctrl+M - Burp Collaborator 페이로드 삽입Ctrl+Alt+J - 사용자 정의 키워드 관리자 열기i3 사용 시, 프레임에 플로팅 모드를 활성화하려면 $HOME/.config/i3/config에 다음 줄을 추가하세요:
for_window [class=".*burp-StartBurp.*" title="^ $"] floating enable
HopLa는 여러 AI 제공업체(OpenAI, Gemini, Ollama)를 지원하지만, AI 기반 자동 완성은 Ollama에서만 사용할 수 있습니다.
AI용 YAML 구성 파일의 구조는 다음과 같습니다 (샘플 파일은 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.
이 확장 프로그램의 BApp Store 버전에서는 Burp 제공업체만 지원됩니다.
YAML 페이로드 파일은 다음 구조를 따릅니다 (중첩 제한 없음):
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"
메뉴에 표시되지 않는 자동 완성 키워드만 추가하려면 keywords 카테고리에 추가하면 됩니다:
keywords:
- name: "Headers"
values:
- "Accept"
- "Accept-Charset"
다른 제공업체를 활성화하려면 build.gradle에서 def externalAIEnabled = true로 설정하세요.
Docker 또는 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
gradle build를 실행하면 releases/HopLa.jar에 플러그인이 준비됩니다.
안티바이러스 경고를 유발하지 않도록 YAML 페이로드 파일은 빌드 시 암호화됩니다.
훌륭한 작업에 정말 감사드립니다!
BSD 3-Clause 라이선스로 공개되었습니다. 자세한 내용은 LICENSE를 참조하세요.
버그 신고, 기능 제안, 풀 리퀘스트는 언제든 환영합니다.
| 기능 | Ollama | Gemini | OpenAI |
|---|
| 채팅 | ✅ 예 | ✅ 예 | ✅ 예 |
| 자동 완성 | ✅ 예 | ❌ 아니요 | ❌ 아니요 |
| 빠른 작업 | ✅ 예 | ✅ 예 | ✅ 예 |