Burp MCPを使ってみる

BurpはCommunity Edition。
BApp Storeからインストールできる。

今回はCursor経由で使う。(そもそもMCPツール自体あまり使ったことがない)

Burp側はExtensionをインストールしておけば勝手に有効になってた

https://github.com/portswigger/mcp-server?tab=readme-ov-file#manual-installations あたりを参考にCursorの設定をする。
(少なくともLinux環境では)BurpをインストールしたときについてきたJavaのパスと、拡張機能の.jar
パスを設定すると動く。
{
"mcpServers": {
"burp": {
"command": "~/BurpSuiteCommunity/jre/bin/java",
"args": [
"-jar",
"~/.BurpSuite/mcp-proxy/mcp-proxy-all.jar",
"--sse-url",
"http://127.0.0.1:9876"
]
}
}
}
拡張機能のパスはインストールしたBurp MCPのOutputから確認できた。

ツール一覧も取れてるので、ちゃんと繋げてそう。ちなみに https://github.com/PortSwigger/mcp-server/blob/main/src/main/kotlin/net/portswigger/mcp/tools/Tools.kt からもツール一覧を確認できる。

とりあえず適当に脆弱性診断チックな動作確認をしたいので、簡単そうなDVWAあたりで試す。
DVWAのセットアップ
https://github.com/digininja/DVWA?tab=readme-ov-file#docker を参考にDockerで立てる
git clone https://github.com/digininja/DVWA
cd DVWA
docker compose up --build
→ http://localhost:4280 dvwa:P@ssw0rd
→ init DBみたいなボタンを押す
→ 以降は admin:password
で入れる

Studio接続とSSE接続というのがあるのか。サーバーが起動しているならURL入れただけで動くらしい。
なので、いったんCursorの設定は👇️で進めている。
{
"mcpServers": {
"burp": {
"url": "http://127.0.0.1:9876/sse",
"disabled": false
}
}
}

MCPサーバーを使ってくれなくて困っていたが、プロジェクトに設定するでなく、グローバルに設定したら使ってくれた。
そういうものなのだろうか(gitリポジトリになってないから?しらんけど)

ところでBurp MCPはプロキシログを記録してくれないのか...?
(リピーターの設定とか、設定情報の取得はできた)

元記事にも書いてあったわ...
リクエストは送ることができるが,http historyやRepeaterのresponseにはログが残らない。なぜなら,MCP ServerはBurp自体を操作しているのではなく,Burp APIを使ってBurpを操作しているためである。
だが,変わりにLoggerタブにログが出力されているので証跡が残らないわけではない。
https://qiita.com/sigma_devsecops/items/a49b7df6e772256759ee#repeaterから連続してリクエストを送る

使い道ががわからんな。プロキシログの取得とかはできるので、まとめたりするのには使えるかもしれない。
(DVWAがコンテキストに入ってしまってあれな感じだけどまぁ)