Burp MCP: LLM ์ง€์› ํŠธ๋ž˜ํ”ฝ ๊ฒ€ํ† 

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

๊ฐœ์š”

Burp์˜ MCP Server ํ™•์žฅ ๊ธฐ๋Šฅ์€ ๊ฐ€๋กœ์ฑˆ HTTP(S) ํŠธ๋ž˜ํ”ฝ์„ MCP-ํ˜ธํ™˜ LLM ํด๋ผ์ด์–ธํŠธ์— ๋…ธ์ถœ์‹œ์ผœ ์ด๋“ค์ด ์‹ค์ œ ์š”์ฒญ/์‘๋‹ต์„ ๊ธฐ๋ฐ˜์œผ๋กœ **๋ถ„์„(reason over real requests/responses)**ํ•˜์—ฌ ์ˆ˜๋™์  ์ทจ์•ฝ์  ๋ฐœ๊ฒฌ ๋ฐ ๋ณด๊ณ ์„œ ์ดˆ์•ˆ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์˜๋„๋Š” ์ฆ๊ฑฐ ๊ธฐ๋ฐ˜ ๋ฆฌ๋ทฐ(evidence-driven review)์ด๋ฉฐ, fuzzing์ด๋‚˜ blind scanning ๊ฐ™์€ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Burp๋ฅผ ์ง„์‹ค์˜ ๊ทผ์›(source of truth)์œผ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

Architecture

  • **Burp MCP Server (BApp)**๋Š” 127.0.0.1:9876์—์„œ ๋Œ€๊ธฐํ•˜๋ฉฐ ๊ฐ€๋กœ์ฑˆ ํŠธ๋ž˜ํ”ฝ์„ MCP๋กœ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • MCP proxy JAR๋Š” stdio (ํด๋ผ์ด์–ธํŠธ ์ธก)์™€ Burp์˜ MCP SSE endpoint๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  • Optional local reverse proxy (Caddy)๋Š” ์—„๊ฒฉํ•œ MCP ํ•ธ๋“œ์‰์ดํฌ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ํ—ค๋”๋ฅผ ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • Clients/backends: Codex CLI (cloud), Gemini CLI (cloud), or Ollama (local).

์„ค์ •

1) Burp MCP Server ์„ค์น˜

Burp BApp Store์—์„œ MCP Server๋ฅผ ์„ค์น˜ํ•˜๊ณ  127.0.0.1:9876์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐ ์ค‘์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”.

2) ํ”„๋ก์‹œ JAR ์ถ”์ถœ

MCP Server ํƒญ์—์„œ Extract server proxy jar๋ฅผ ํด๋ฆญํ•˜๊ณ  mcp-proxy.jar๋กœ ์ €์žฅํ•˜์„ธ์š”.

3) MCP ํด๋ผ์ด์–ธํŠธ ๊ตฌ์„ฑ (Codex ์˜ˆ์‹œ)

ํด๋ผ์ด์–ธํŠธ๋ฅผ proxy JAR๊ณผ Burp์˜ SSE endpoint๋กœ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์„ค์ •ํ•˜์„ธ์š”:

# ~/.codex/config.toml
[mcp_servers.burp]
command = "java"
args = ["-jar", "/absolute/path/to/mcp-proxy.jar", "--sse-url", "http://127.0.0.1:19876"]

ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ฒˆ์—ญํ•˜๋ ค๋ฉด src/AI/AI-Burp-MCP.md ํŒŒ์ผ์˜ ํ…์ŠคํŠธ๋ฅผ ๋ถ™์—ฌ ๋„ฃ์–ด ์ฃผ์„ธ์š”.

๋˜ํ•œ โ€œThen run Codexโ€œ๊ฐ€ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”โ€”OpenAI Codex API๋ฅผ ํ˜ธ์ถœํ•ด ์‹คํ–‰ํ•˜๊ธธ ์›ํ•˜์‹œ๋Š”์ง€, ์•„๋‹ˆ๋ฉด ๋ฌธ์„œ ๋‚ด์˜ โ€œCodexโ€ ์„น์…˜์„ ์ฝ๊ณ  ์ฒ˜๋ฆฌ๋ฅผ ์›ํ•˜์‹œ๋Š”์ง€์š”? โ€œlist MCP toolsโ€œ๋Š” ๋ฌธ์„œ์— ๋‚˜์™€ ์žˆ๋Š” ๋„๊ตฌ ๋ชฉ๋ก์„ ๋ฒˆ์—ญํ•ด์„œ ๋‚˜์—ดํ•ด ๋‹ฌ๋ผ๋Š” ์˜๋ฏธ์ธ๊ฐ€์š”?

์œ„ ์‚ฌํ•ญ๋“ค ํ™•์ธํ•ด ์ฃผ์‹œ๋ฉด ์š”์ฒญ์— ๋งž๊ฒŒ ๋™์ผํ•œ ๋งˆํฌ๋‹ค์šด/HTML ๊ตฌ๋ฌธ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์˜์–ด๋ฅผ ํ•œ๊ตญ์–ด๋กœ ๋ฒˆ์—ญํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

codex
# inside Codex: /mcp

4) Caddy๋กœ ์—„๊ฒฉํ•œ Origin/header ๊ฒ€์ฆ์„ ํ•ด๊ฒฐํ•˜๊ธฐ (ํ•„์š”ํ•œ ๊ฒฝ์šฐ)

MCP ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์—„๊ฒฉํ•œ Origin ๊ฒ€์‚ฌ๋‚˜ ์ถ”๊ฐ€ ํ—ค๋” ๋•Œ๋ฌธ์— ์‹คํŒจํ•˜๋ฉด, ๋กœ์ปฌ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•ด ํ—ค๋”๋ฅผ ์ •๊ทœํ™”ํ•˜์„ธ์š” (์ด ๋ฐฉ๋ฒ•์€ Burp MCP์˜ ์—„๊ฒฉ ๊ฒ€์ฆ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์šฐํšŒ์ฑ…๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค).

brew install caddy
mkdir -p ~/burp-mcp
cat >~/burp-mcp/Caddyfile <<'EOF'
:19876

reverse_proxy 127.0.0.1:9876 {
# lock Host/Origin to the Burp listener
header_up Host "127.0.0.1:9876"
header_up Origin "http://127.0.0.1:9876"

# strip client headers that trigger Burp's 403 during SSE init
header_up -User-Agent
header_up -Accept
header_up -Accept-Encoding
header_up -Connection
}
EOF

ํ”„๋ก์‹œ์™€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”:

caddy run --config ~/burp-mcp/Caddyfile &
codex

๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์šฉ

Codex CLI

  • ์œ„์™€ ๊ฐ™์ด ~/.codex/config.toml์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • codex๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ /mcp๋กœ Burp ๋„๊ตฌ ๋ชฉ๋ก์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Gemini CLI

The burp-mcp-agents repo provides launcher helpers:

source /path/to/burp-mcp-agents/gemini-cli/burpgemini.sh
burpgemini

Ollama (local)

์ œ๊ณต๋œ launcher helper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ๋ชจ๋ธ์„ ์„ ํƒํ•˜์„ธ์š”:

source /path/to/burp-mcp-agents/ollama/burpollama.sh
burpollama deepseek-r1:14b

์˜ˆ์‹œ ๋กœ์ปฌ ๋ชจ๋ธ ๋ฐ ๋Œ€๋žต์ ์ธ VRAM ์š”๊ตฌ๋Ÿ‰:

  • deepseek-r1:14b (~16GB VRAM)
  • gpt-oss:20b (~20GB VRAM)
  • llama3.1:70b (48GB+ VRAM)

์ˆ˜๋™ ๊ฒ€ํ† ์šฉ ํ”„๋กฌํ”„ํŠธ ํŒฉ

The burp-mcp-agents repo๋Š” Burp ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ์ฆ๊ฑฐ ๊ธฐ๋ฐ˜ ๋ถ„์„์„ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

  • passive_hunter.md: ๊ด‘๋ฒ”์œ„ํ•œ passive ์ทจ์•ฝ์  ํ‘œ๋ฉดํ™”.
  • idor_hunter.md: IDOR/BOLA/object/tenant drift ๋ฐ auth ๋ถˆ์ผ์น˜.
  • auth_flow_mapper.md: authenticated ๊ฒฝ๋กœ์™€ unauthenticated ๊ฒฝ๋กœ ๋น„๊ต.
  • ssrf_redirect_hunter.md: URL fetch ํŒŒ๋ผ๋ฏธํ„ฐ/redirect ์ฒด์ธ์—์„œ SSRF/open-redirect ํ›„๋ณด.
  • logic_flaw_hunter.md: ๋‹ค๋‹จ๊ณ„ logic flaw.
  • session_scope_hunter.md: token audience/scope ์˜ค์šฉ.
  • rate_limit_abuse_hunter.md: throttling/abuse ํ—ˆ์ .
  • report_writer.md: ์ฆ๊ฑฐ ์ค‘์‹ฌ ๋ฆฌํฌํŒ….

์„ ํƒ์  ์–ดํŠธ๋ฆฌ๋ทฐ์…˜ ํƒœ๊น…

๋กœ๊ทธ์—์„œ Burp/LLM ํŠธ๋ž˜ํ”ฝ์— ํƒœ๊ทธ๋ฅผ ๋ถ™์ด๋ ค๋ฉด, ํ—ค๋” ์žฌ์ž‘์„ฑ(header rewrite)์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”(ํ”„๋ก์‹œ ๋˜๋Š” Burp Match/Replace):

Match:   ^User-Agent: (.*)$
Replace: User-Agent: $1 BugBounty-Username

์•ˆ์ „ ์ฃผ์˜์‚ฌํ•ญ

  • ํŠธ๋ž˜ํ”ฝ์— ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ๋กœ์ปฌ ๋ชจ๋ธ์„ ์šฐ์„  ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ๋ฐœ๊ฒฌ์‚ฌํ•ญ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ฆ๊ฑฐ๋งŒ ๊ณต์œ ํ•˜์„ธ์š”.
  • ์ง„์‹ค์˜ ์ถœ์ฒ˜๋กœ Burp๋ฅผ ์œ ์ง€ํ•˜์„ธ์š”; ๋ชจ๋ธ์€ ๋ถ„์„ ๋ฐ ๋ณด๊ณ  ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๊ณ , scanning์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.

์ฐธ๊ณ ์ž๋ฃŒ

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ