(ほぼ)日課のQiita記事の投稿です。
毎日書くの結構難しいから、今後平日は興味のある情報のURLまとめるとかの方がいいかも・・・
とりあえず今回は、Burp Suiteの拡張機能を作成し始めた頃に調べた情報をまとめました。
Burpのインストールや使用方法については割愛します。
今回は以下を参考にさせていただきました。
- SSTtechlog 09 Burp拡張の作成に挑戦! | SST 株式会社セキュアスカイ・テクノロジー
- Burp Suite拡張を作ろう | MBSD Blog
- Burp Suite拡張プラグイン作成入門 その1 - Hello world編 - まったり技術ブログ
Burpの拡張機能の作り方
- Burpからインターフェイス用のソースを取得し、作成する拡張機能に組み込む。 (“Extender” -> “APIs” -> “Save interface files”)
-
burp.BurpExtender という名のクラスを、以下のように作る。
- パッケージが burp に属している
- クラス名が BurpExtender
- インターフェース IBurpExtender を実装
実装した IBurpExtenderインターフェイスの registerExtenderCallbacks()メソッドの中に実際に実行したいコードを書いていく
BurpExtender.java
package burp;
public class BurpExtender implements IBurpExtender {
public void registerExtenderCallbacks(IBurpExtenderCallbacks iBurpExtenderCallbacks) {
// ここに実際に実行されるコードを書いていく
}
}
作成できる機能の一部
I(Proxy|Http|Scanner)Listener API
ProxyなどのHTTP通信やScannerで検出した問題を取得IContextMenu~, IMenuItemHandler API
右クリックメニューを拡張IMessageEditor~ API
HTTPの編集画面をカスタマイズIIntruderPayload~ API
Intruderで使うペイロード生成
他の機能など、詳しくは以下を参考にしてください。
- APIドキュメント:Generated Documentation (Untitled)
- APIのインターフェイスのソースコード:GitHub - PortSwigger/burp-extender-api: Burp Extender API
拡張機能の読み込み
- Extender > Extensions > Add
- Select file... から、追加したい拡張機能のjarファイルを選択する
- Errorタブに何も表示されていなければ、エラーなく読み込み成功
メモ
- BurpのUIはLatin-1(ISO8859-1)が使われているようです。文字化けが面倒ですなぁ・・・