πŸ“‘Raw Request

Raw Request mode allows you to define a complete HTTP request template with payload injection points. Instead of relying on Burp Suite's insertion point detection, you craft the exact request to send, using variables for dynamic values.

βš™οΈ Enabling Raw Request Mode

Set requestType to 2 to enable Raw Request mode:

{
  "requestType": 2,
  "rawRequest": "POST /api/login HTTP/1.1\r\nHost: {CURRENT_HOST}\r\nContent-Type: application/json\r\n\r\n{\"username\":\"{PAYLOAD}\",\"password\":\"test\"}"
}

πŸ”§ Raw Request Variables

The following variables are available in raw request templates:

πŸ’‰ Payload Variables

Variable
Description

{PAYLOAD}

🎯 The current payload value (replaced for each payload in the list)

{PAYLOAD_URL}

πŸ”— The current payload, URL-encoded

πŸ“‘ Request Context Variables

Variable
Description

{URL}

πŸ”— The full target URL

{COOKIE}

πŸͺ The cookies from the original request

{CURRENT_HOST}

πŸ–₯️ The target hostname

{CURRENT_PROTOCOL}

πŸ”’ http or https

{CURRENT_PORT}

πŸ”’ The target port

{CURRENT_PATH}

πŸ“‚ The URL path

{CURRENT_QUERY}

❓ The query string

{CURRENT_METHOD}

πŸ“‘ The HTTP method

{CURRENT_USER_AGENT}

πŸ–₯️ The User-Agent from the original request

{CURRENT_REFERER}

πŸ”— The Referer from the original request

{CURRENT_ORIGIN}

🌐 The Origin from the original request

{CURRENT_CONTENT_TYPE}

πŸ“„ The Content-Type from the original request

🌐 Global Variables

All global variables ({REDIRECT_DOMAIN}, {BC}, {ATTACKER_DOMAIN}, etc.) are also available.

🎯 Use Cases

πŸ“‘ Custom HTTP Methods

Test non-standard HTTP methods:

πŸ”— Specific Request Structure

Test a specific API endpoint with a custom body:

πŸ“„ XML/SOAP Requests

Test XML-based services:

πŸ”— GraphQL Queries

Test GraphQL endpoints:

πŸ“ Multipart Requests

Test file upload endpoints:

πŸ” Matching in Raw Request Mode

The same match types and grep options apply to Raw Request mode. The response from the raw request is analyzed using the profile's configured grep patterns, match type, and response filters.

Raw request mode supports all match types:

  • πŸ“ Simple String / Regex matching

  • ⏱️ Timeout detection (raw-specific implementation)

  • πŸ”’ HTTP Response Code matching

  • πŸ“ Content Length comparison

  • πŸ“Š Variations / Invariations

  • 🌐 Collaborator detection

πŸ“š Example Profile

πŸ“Š Differences from Standard Mode

Aspect
Standard (requestType=1)
Raw (requestType=2)

πŸ—οΈ Request construction

Burp Suite builds the request

You define the complete request

πŸ“ Insertion points

Auto-detected by Burp

You place {PAYLOAD} where needed

πŸ”’ Multiple injection points

One per insertion point

Multiple {PAYLOAD} in one request

πŸ“‘ HTTP method

From original request (or modified)

Defined in raw template

πŸ“‹ Headers

From original request (can be modified)

Defined in raw template

πŸͺ Cookie handling

Automatic

Manual via {COOKIE} variable

πŸ’‘ Tips

  • πŸ“ Use \r\n for line endings in raw requests (HTTP standard)

  • πŸ–₯️ Always include Host header using {CURRENT_HOST} to ensure requests go to the right target

  • πŸͺ Use {COOKIE} to forward cookies from the original request

  • πŸ”— Use {PAYLOAD_URL} when the payload needs URL encoding within the raw request

  • πŸ§ͺ Test manually first β€” Use Burp Repeater to verify your raw request works before creating a profile

Last updated