Burp Suite extension that stores named variables, replaces ${bg:name} placeholders in outgoing HTTP requests, and exposes every variable as a JVM system property (bg.name) so bambdas and custom scan checks can read them with System.getProperty("bg.name").
- This extension is predominantly LLM coded, but assisted with manual testing and design
- Some design choices were inspired by: https://github.com/0xceba/burp_variables
./gradlew jarOutput: build/libs/BurpGlobals-1.0.0.jar — load via Extensions → Installed → Add.
- Open the Burp Globals tab and add variables.
- Use
${bg:variable_name}anywhere in a request to reference a variable. - Access variables from Java code (bambdas, scan checks) with:
String token = System.getProperty("bg.auth_token");
- Right-click in a message editor → Burp Globals to insert placeholders or code references.
| Column | Description |
|---|---|
| Enabled | Checkbox — controls whether this variable's placeholders are replaced in outgoing requests. Disabled variables are still accessible via System.getProperty. |
| Secret | Checkbox — masks the value in the UI with bullet characters. The actual value is still used for replacement and system properties. |
| Variable Name | The variable's identifier. Used in placeholders (${bg:name}) and system properties (bg.name). Must be unique. |
| Variable Value | The value substituted into requests and set as the system property. |
| Request Reference | Read-only — shows the ${bg:name} placeholder to use in requests. Click to copy. |
| Code Reference | Read-only — shows the System.getProperty("bg.name") call for use in bambdas. Click to copy. |
| Auto-update Regex | Visible when auto-update is enabled. A regex with a capture group applied to HTTP responses — the first capture group match becomes the new variable value. Invalid patterns are highlighted in red. |
Access via the Options button in the Burp Globals tab.
- Toggle tools — Select which Burp tools perform
${bg:...}placeholder replacement. Enabled by default for Repeater, Intruder, Scanner, and Extensions. Proxy replacement only applies to in-scope requests. - Export variables — Save all variables to a CSV file (columns: name, value, regex).
- Import variables — Load variables from a CSV file. Rows are appended; duplicate names are skipped. The CSV should have no header row.
- Auto-update variables — HTTP responses are matched against each variable's regex pattern. The first capture group becomes the new value. This also shows the Auto-update Regex column in the table.
- Clear variables — Remove all variables from the table (with confirmation prompt).
Right-click inside a message editor request to access the Burp Globals submenu:
- Insert request placeholder — Inserts
${bg:name}at the caret or replaces the selection. - Insert Java code reference — Inserts
System.getProperty("bg.name")at the caret (useful when editing bambdas).
Right-click a row in the variables table for:
- Copy request placeholder / Copy Java code reference — Copies to clipboard.
- Delete selected variable(s) — Removes the selected rows.