Burp拡張の開発

Javaに精通していれば、Montoya APIを使用して独自のBurp Suite拡張を作成できます。Burp Suiteは、Java 17以下で書かれた拡張のみをサポートしていることに注意してください。

はじめに、MavenまたはGradleのプロジェクトを新規に作成し、次のようにMontoya APIの依存関係を追加します。

Maven

<dependency> <groupId>net.portswigger.burp.extensions</groupId> <artifactId>montoya-api</artifactId> <version>LATEST</version> </dependency>

Gradle

implementation 'net.portswigger.burp.extensions:montoya-api:+'

次に、BurpExtensionインタフェースを実装したクラスを作成します。initialize()メソッドは、MontoyaApiの実装を提供します。これを使用してBurp Suiteの変更や通信ができます。

拡張が完成したら、BAppストアに投稿して他のBurpユーザと共有できます。BAppストアへの拡張の投稿およびBAppストアの受入基準を参照してください。

BAppストアにある多くの拡張は、古いExtender APIで開発されています。Burp Suiteは当面の間Extender APIをサポートし続けますが、新しい拡張はMontoya APIを使った開発を強く推奨します。

拡張開発者のための有用なリソース

独自の拡張の開発について詳しい説明はできませんが、次の有用なリソースを参考にしてください:

拡張でケトルなHTTP/2リクエストを処理

拡張から新しいリクエストを発行する場合、HTTP/2フォーマットを使ったケトルなリクエストを自由に送信できます。これにより、HTTP/2特有の脆弱性をテストするための拡張を開発できます。

ただし現在のところ、Burpによって発行されたケトルなリクエストを、拡張からは変更できません。これは、APIを介した場合には正規化されたHTTP/1スタイルの表現にしかアクセスできないためです。