Creating Burp extensions

Burp extensions are flexible and powerful plugins that enable you to customize Burp Suite to suit your workflow.

You can create your own extensions in Java using our Montoya API. This enables you to, for example:

Exploring your idea

Before you begin development, refine your idea and gather inspiration:

Choosing the right extensibility option

Burp offers different customization options depending on your needs:

Creating AI-powered extensions

The Montoya API enables you to integrate advanced AI features into your Burp Suite extensions. Your extensions can now send prompts to a Large Language Model (LLM), allowing real-time input analysis and intelligent responses.

More information

For more information, see Creating AI extensions.

Handling kettled HTTP/2 requests in extensions

When issuing new requests from your extension, you're free to send kettled requests using HTTP/2 formatting. This enables you to develop extensions to test for HTTP/2-exclusive vulnerabilities.

However, it is not currently possible for extensions to modify kettled requests that were issued by Burp. This is because the API only allows them to access the normalized, HTTP/1 style request representation.

Custom editor best practice

Make sure that any ExtensionHttpRequestEditor returned does not use an HttpRequestEditor as the UI component when it registers an HttpRequestEditorProvider. This avoids a scenario where the HttpRequestEditor is created within another HttpRequestEditor, potentially creating an infinite loop of HttpRequestEditor components and causing Burp to crash.

For the same reason, avoid returning an HttpResponseEditor when registering an HttpResponseEditorProvider.

In this section