ALLDOCUBE iPlay 70 mini Ultra タブレット 8.8インチ Snapdragon7+Gen3 2560×1600解像度 144Hz高リフレッシュレート 20GB+256GB+1TB拡張 7300mAh PD20W デュアルスピーカーDTSサウンド 6軸ジャイロ WiFi6 BT5.4 WidevineL1 重力センサー 光センサー Androidタブレットアンドロイド
(2025年4月25日 13:07 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)
これは何?
最近流行りのMCP(Model Context Protocol)使うといろんな操作をAIエージェントにやってもらえるようになる。
今回は脆弱性診断等で使用されるBurp SuiteをBurp MCP Serverを使って自然言語で操作してみることを試してみた。
脆弱性診断業務の一部が自動化できると嬉しいので,良いアイデアをお持ちの方がいればぜひコメントお願いします。
環境
- ホストOS: Windows 11(Ubuntuでも動作確認まではやりましたが,業務利用を見据えてWindowsをメインに記載します)
- Burp Suite Community Edition v2025.3.3
- MCP Clientト: Roo-Code
- MCP Server: Burp MCP Server
Roo-Codeで試しましたが,お得に試したい
GitHub Copilot使用者向けの設定もおまけに記載しています。
セットアップ
Burp Suiteのインストール
- 公式からインストールできる
BApp StoreからBurp MCP Serverをインストールする
ExtensionsタブからBApp Storeを選択する。
「MPC]などで検索してインストールする。
割とMCP Client側でツールを起動するパターン(stdio接続)が多いが、
Burp MCP Serverの場合はBurp側でサーバが起動されている(SSE)。
後述するMCP Clientの設定では起動コマンドを記述しなくてよい。
portswiggerのmcp-server等を見ると起動コマンドが例で書いてあったりするが自分はつかわなかった。
VS Code(MCP Client)の設定
- Roo-Codeをインストールする
- AnthoropicのAPIキーをセットする。参考
- mcp.jsonを記載する GitHubのissueが参考になった。
{
"mcpServers": {
"burp": {
"url": "http://localhost:9876/sse",
"disabled": false,
"autoApprove": []
}
}
}
実際に試してみる
とりあえず,repeaterを使ってみる
Roo-Codeからタスクを依頼してみる。MCPを使わずに解決されると困るのでMCPを使うように明記した。
(システムプロンプトに記載してもよい)
Burp MCP Serverを使ってrepeaterにgoogle.comへアクセスする設定をいれてください。ただし,User-Agentをsigmaにして
実務での使いみちを検討
Burpの設定変更
MCPタブからEnable tools that can edit your configにチェックするとコンフィグをいじれるようになるらしい。
BurpのMCP Serverを使ってproxyのportを8080から8008に変更して
おおお!ちゃんとできた。
Scope設定の自動化
誤って余計なところにリクエストが飛ばないようにScopeを設定し,指定したFQDN以外へ通信が飛ばないようにしたりすることもあるので,数が多い時などはAIにやってもらえると嬉しいかも。
例: 「以下のurlをscopeに設定してください。urlは以下です」
正しい設定ができているかのダブルチェック
Burp MCPを使って設定確認を行ってください。
- Drop all out-of scope requestsにチェックがついているか
- proxyのportが8008か
- scopeが設定されているか
違反しているものがあれば教えて
会社によってオフィシャルでやるべき設定があるのであればBurpの設定ファイルを共通化するのでも良いが,
使っているうちに設定を変える必要がある場面もあるので,AIエージェントにダブルチェックしてもらうのは結構良いのではないだろうか。
repeaterから連続してリクエストを送る
Postmanでやれよと言われたらそれまでだが,repeaterを使って連続してリクエストを飛ばしたい。
以下はイメージ。
- ログインする
- 取得したトークンをリクエストにつけてコミット処理を実行
雑な疎通確認
これもBurpでやらなくてもいい案件な気はするが,
診断対象のurl一覧にアクセスして疎通できるかの一次切り分けをやってもらうと楽かもしれない。
以下のurlにアクセスして,アクセスできるか確かめてください。対象は以下です。一部のurlにはログイン後しかアクセスできないので,アクセスできなかった部分はログイン後に再アクセスしてみてください。
リクエストを通すのに不要なパラメータを削る
AIを使わなくても機械的にできそうとは思いつつ。
リクエストに含まれるパラメータのうち,リクエストが成功するのに不要なパラメータを削っておくとパラメータ改ざんが楽になりそう
このリクエストに含まれるパラメータを1つずつ削除してリクエストを再送してみてください。再送した結果,レスポンスが200 OKでなくなった場合にはそのパラメータを再度設定しなおしてください。
おまけ
GitHub CopilotのMCP機能を使って同じことをやる方法を書いておく。
API代を気にせずに試したい人向けの設定を記載しておく。
-
CopilotをAgentモードにする
-
settings.jsonに以下を追加する
"mcp": { "servers": { "burp": { "type": "sse", "url": "http://127.0.0.1:9876/sse", } } },
一応動くが出力がイケてない気はする。