Using Burp Repeater
Burp Repeater is a simple tool for manually manipulating and reissuing individual HTTP and WebSocket messages, and analyzing the application's responses. You can use Repeater for all kinds of purposes, such as changing parameter values to test for input-based vulnerabilities, issuing requests in a specific sequence to test for logic flaws, and reissuing requests from Burp Scanner issues to manually verify reported issues.
The main Repeater UI lets you work on multiple different messages simultaneously, each in its own tab. When you send messages to Repeater, each one is opened in its own numbered tab. You can rename tabs by double-clicking the tab header.
Using Burp Repeater with HTTP messages
To use Burp Repeater with HTTP messages, you can select an HTTP message anywhere in Burp, and choose "Send to Repeater" from the context menu. This will create a new request tab in Repeater, and automatically populate the target details and request message editor with the relevant details. Alternatively, you can open a new Repeater tab manually and select the "HTTP" option.
For HTTP messages, each Repeater tab contains the following items:
- Controls to issue requests and navigate the request history.
- The target server to which the request will be sent is shown - you can click on the target details to change these.
- An HTTP message editor containing the request to be issued. You can edit the request and reissue it over and over.
- An HTTP message editor showing the response that was received from the last issued request.
Sending HTTP requests
When your request is ready to send, click the "Send" button to send it to the server. The response is displayed when this is received, together with the response length and a timer (in milliseconds). You can use the usual HTTP message editor functions to help analyze the request and response messages, and carry out further actions.
HTTP request history
Each Repeater tab maintains its own history of the requests that have been made within it. You can click the "<" and ">" buttons to navigate backwards and forwards through this history and view each request and response. You can also use the drop-down buttons to show a numbered list of adjacent items in the history, and quickly move to them. At any point in the history, you can edit and reissue the currently displayed request.
Using Burp Repeater with WebSocket messages
To use Burp Repeater with WebSocket messages, you can select a WebSocket message in the Proxy history, and choose "Send to Repeater" from the context menu. Alternatively, you can open a new Repeater tab and select the "WebSockets" option.
For WebSocket messages, each Repeater tab contains the following items:
- A message editor containing the WebSocket message that will be sent. You can edit the message and resend it over and over.
- The WebSocket connection via which the message will be sent.
- A history table showing all of the messages that have been sent and received, and a message viewer for the message that is currently selected in the history.
Sending WebSocket messages
You can edit the message that will be sent, and select whether it should be sent to the server or client. Note that the option to send a message to the client is only available in connections that are still open via Burp Proxy.
When your message is ready to send, click the "Send" button to send the message.
Optionally, the history table will automatically select the next message that is received after you sent the message.
WebSocket message history
The history table shows all of the messages that have been sent and received. Messages that were generated manually within Burp Repeater are indicated in the "Repeater" column. You can select a message to view it in the lower pane.
If you want to resend a message from the history, you can choose the "Edit and resend" option on the context menu. This will show the selected message in the left-hand message editor, allowing you to modify the message as required, and then send it.
Burp Repeater has various options that control its behavior, including automatic updating of the Content-Length header, unpacking of compressed content, and the following of redirections. You can access these options via the Repeater menu.
Managing request tabs
You can easily manage Repeater's request tabs. You can:
- Rename tabs by double-clicking the tab header.
- Reorder tabs by dragging them.
- Open a new tab by clicking on the right-most "..." tab.
- Close tabs by clicking the X button in the tab header.