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特有の脆弱性をテストするための拡張を開発できます。
ただし現在のところ、Burpによって発行されたケトルなリクエストを、拡張からは変更できません。これは、APIを介した場合には正規化されたHTTP/1スタイルの表現にしかアクセスできないためです。