Match types define how Burp Bounty Pro determines whether a vulnerability was found. The MatchType field controls the logic used to evaluate grep patterns and other detection conditions.
π Grep-Based Match Types
β MatchType 1: All Conditions (AND)
All grep patterns must match for the issue to be reported.
{"MatchType":1,"Grep":["true,,Simple String,Only in Headers,Access-Control-Allow-Credentials: true","true,OR,Simple String,Only in Headers,Access-Control-Allow-Origin: https://evil.com"]}
π Note: Even though individual patterns use OR operators between them, MatchType 1 requires the combined result to be true. The OR operators define groups that are evaluated, then all groups must pass.
π MatchType 2: At Least One (OR)
At least one grep pattern must match for the issue to be reported.
π€ Case sensitivity controlled by CaseSensitive field
β‘ Fastest match type
π£ Regex
Searches using a regular expression pattern.
π Supports full Java regex syntax
π― More flexible but slower than Simple String
π€ Use (?i) flag for case-insensitive regex, or set CaseSensitive: false
π Grep Pattern Format
Each grep entry follows this format:
Component
Description
Values
enabled
Whether this pattern is active
true, false
operator
Logic operator (empty for first pattern)
(empty), AND, OR
type
Pattern matching method
Simple String, Regex
scope
Where to search
(empty = all), Only in Headers, Only in Body
pattern
The search string or regex
Any string
βοΈ Operator Logic
Grep patterns are grouped by operators and evaluated with short-circuit optimization:
Evaluates as:
β AND groups are evaluated left to right; if any pattern fails, the group fails
π OR connects groups; if any group passes, the result is true
π― Response Scope
Control where in the response patterns are searched:
Scope
Description
(empty)
π Search the entire response (headers + body)
Only in Headers
π Search only in HTTP response headers
Only in Body
π Search only in the response body
β‘ Special Match Types
πͺ Payload Reflection (MatchType 3)
Checks if the exact payload appears in the response.
The scanner sends the payload and checks if the response contains the unmodified payload string. Useful for reflected XSS detection.
πͺ Payload Reflection Without Encoding (MatchType 4)
Like MatchType 3, but checks for the payload before any encoding was applied.
β±οΈ Timeout (MatchType 5)
Detects time-based vulnerabilities by measuring response time.
Comparison modes:
π Between β Response time is between TimeOut1 and TimeOut2 (milliseconds)
β¬οΈ Greater than β Response time exceeds TimeOut1
β¬οΈ Less than β Response time is below TimeOut1
Use cases:
ποΈ Time-based SQL injection (e.g., SLEEP(5))
β‘ Time-based blind command injection
π₯οΈ Server-side processing delays
π Content Length (MatchType 6)
Detects vulnerabilities by comparing response content length differences.
The scanner:
π‘ Sends a baseline request (without payload)
π Sends the payload request
π Compares content lengths
π If the difference exceeds the threshold, reports an issue
Use cases:
ποΈ Boolean-based SQL injection
π Access control bypasses (different response sizes)
π Variations (MatchType 7)
Detects changes in specific response attributes between baseline and payload requests.
The scanner compares the specified attributes between the baseline response and the payload response. If any attributes differ, it reports an issue.
π Invariations (MatchType 8)
The opposite of Variations β detects when response attributes remain the same when they should differ.
π’ HTTP Response Code (MatchType 9)
Matches specific HTTP status codes in the response.
Use cases:
π Path discovery (200 vs 404)
π Authentication bypass (200 vs 401/403)
β οΈ Server errors (500)
π Collaborator-Based Detection
For out-of-band vulnerability detection using Burp Collaborator:
π§ Use {BC} variable in payloads to generate a Collaborator subdomain
π The scanner periodically polls Burp Collaborator for interactions
β If an interaction is detected, the vulnerability is confirmed
Collaborator detection is asynchronous β results may appear after the scan completes. The polling interval is configurable in Options (collaboratorRefreshtime).
β οΈ Note: Collaborator-based profiles are excluded from the stop-on-first-match optimization since detection happens asynchronously.
π Negative Matching
Set NotResponse: true to invert the match logic β the issue is reported when the pattern is NOT found:
This reports an issue when the Strict-Transport-Security header is missing. Commonly used for security header checks in Passive Response profiles.