🎯Creating Active Profiles

This guide walks you through creating an active scanning profile step by step.

πŸ“ Step 1: Open the Profile Editor

  1. Go to Burp Bounty Pro > Profiles > Active Profiles tab

  2. Click Add to create a new profile

  3. πŸͺŸ The profile editor dialog opens (non-modal β€” you can interact with Burp while editing)

πŸ“‹ Step 2: Basic Information

Field
Description
Example

πŸ“ Profile Name

Unique identifier

My_XSS_Profile

πŸ‘€ Author

Your name or handle

@researcher

🏷️ Tags

Categories for organization

XSS, All

βœ… Enabled

Whether the profile is active

true

πŸ’‰ Step 3: Define Payloads

Add the payloads that will be injected into insertion points.

Format: Each payload entry has an enabled flag followed by the payload value:

true,<script>alert(1)</script>
true,"><img src=x onerror=alert(1)>
false,<svg onload=alert(1)>
  • βœ… Prefix true, to enable a payload

  • ❌ Prefix false, to disable (keep for later use)

πŸ”§ Using Variables:

See Variables for the complete list.

πŸ“ Loading from File: Set payloadsFile to the path of a text file containing one payload per line.

πŸ“ Step 4: Configure Insertion Points

Select which parts of the HTTP request to inject payloads into.

🎯 Common selections for XSS testing:

  • URL parameter value (0)

  • Body parameter value (1)

  • URL path folder (6)

πŸ”’ Common selections for header injection:

  • Specific HTTP headers (67-77)

  • Custom header (78)

See Insertion Points for the complete reference.

πŸ” Step 5: Define Match Conditions (Grep)

Configure how to determine if the vulnerability was detected.

Grep format: "enabled,operator,type,scope,pattern"

Component
Values

enabled

true or false

operator

Empty (first condition), AND, OR

type

Simple String, Regex

scope

Empty (all response), Only in Headers, Only in Body

pattern

The search pattern

πŸ“ Examples:

Simple string match:

Regex match with OR:

Header-only match:

βš™οΈ Step 6: Set Match Type

MatchType
Description

1

βœ… All conditions AND β€” All grep patterns must match

2

πŸ”€ At least one OR β€” At least one grep pattern must match

πŸ”„ Step 7: Configure Redirections

Choose how to handle HTTP redirects:

RedirType
Behavior

0

🚫 Never follow redirects

1

🏠 Follow on-site only

2

🎯 Follow in-scope only

3

🌐 Always follow

4

πŸ”’ Follow with max limit

Set MaxRedir to limit the number of redirects (e.g., 5).

πŸ› Step 8: Set Issue Properties

Field
Description
Example

πŸ“ IssueName

Vulnerability name

Reflected XSS

⚠️ IssueSeverity

Severity level

High, Medium, Low, Information

🎯 IssueConfidence

Confidence level

Certain, Firm, Tentative

πŸ“„ IssueDetail

Description with placeholders

Payload: <payload><br/>Match: <grep>

The <payload> and <grep> placeholders are replaced with the actual payload and matched pattern at runtime.

βš™οΈ Step 9: Optional Configuration

πŸ” Payload Encoding

Add encoding transformations to payloads:

  • πŸ”— URL-encode key characters

  • πŸ”— URL-encode all characters

  • πŸ“ HTML-encode key characters

  • πŸ”’ Base64-encode

  • 🌐 Unicode-encode

See Payload Encoding for details.

πŸ”½ Response Filtering

Filter which responses to analyze:

  • πŸ“„ Content-Type β€” Only process specific content types

  • πŸ”’ Response Code β€” Only process specific HTTP status codes

  • πŸ“ URL Extension β€” Only process specific file extensions

πŸ”„ Request Modification

Modify the HTTP method:

  • POST β†’ GET

  • GET β†’ POST

  • Toggle between methods

πŸ”€ Match and Replace

Apply find/replace rules to requests before sending. See Match and Replace.

πŸ“š Complete Example: CORS Misconfiguration

This profile:

  1. πŸ’‰ Injects https://{REDIRECT_DOMAIN} as the Origin header value

  2. πŸ” Checks response headers for Access-Control-Allow-Credential: true AND either Access-Control-Allow-Origin: https://{REDIRECT_DOMAIN} or Access-Control-Allow-Origin: null

  3. πŸ› Reports a Low severity CORS Misconfiguration issue

Last updated