πMulti-Step Profiles
Multi-step profiles allow you to chain multiple scanning steps together in a sequential flow. This is essential for testing vulnerabilities that require multiple requests, such as multi-stage attacks, authentication-dependent tests, and workflows that rely on state from previous requests.
π‘ Concept
A multi-step profile executes a sequence of steps, where each step is a complete scan configuration (payloads, grep patterns, insertion points). Steps are executed sequentially, and cookies/state can be shared between them.
Step 1: Send initial payload β Match response
β πͺ (cookies carried forward)
βΌ
Step 2: Send follow-up payload β Match response
β πͺ (cookies carried forward)
βΌ
Step 3: Send verification payload β Final match β π Report issueπ Step Structure
Each step in the steps[] array contains the same fields as a regular profile, plus additional multi-step-specific fields:
πͺ reuseCookie
Boolean
Carry cookies from the previous step's response
π insertionPoint
String
"same" to reuse the matched insertion point from the previous step, or null for all insertion points
All standard profile fields are available per step: Payloads, Grep, MatchType, InsertionPointType, RedirType, MaxRedir, Header, NewHeaders, etc.
βοΈ How Multi-Step Execution Works
1οΈβ£ Step 1 executes with its payloads and insertion points
β If Step 1 matches, the scanner records:
π The matching insertion point
πͺ Any cookies set in the response
2οΈβ£ Step 2 executes using:
πͺ Cookies from Step 1 (if
reuseCookie: true)π The same insertion point as Step 1 (if
insertionPoint: "same")π Or all insertion points (if
insertionPoint: null)
π This continues for all steps in the sequence
π― Stop-on-match: If any step fails to match, the entire sequence stops for that insertion point
πͺ Cookie Reuse
When reuseCookie: true:
The response from the previous step is analyzed for
Set-CookieheadersAll cookies are collected and added to the next step's request
This enables testing scenarios like:
π Login β Access protected resource
π‘οΈ CSRF token retrieval β Use token in attack
π Session setup β Exploit session-dependent vulnerability
π Insertion Point Reuse
When insertionPoint: "same":
The step tests only the same insertion point that matched in the previous step
This ensures the attack chain targets a consistent parameter across all steps
If not set (or
null), all configured insertion points are tested
π Example: Multi-Step Authentication Test
π Flow:
1οΈβ£ Step 1 sends
adminas a body parameter and checks for a session cookie2οΈβ£ Step 2 reuses the session cookie and requests
/admin/dashboard, checking for admin access
π Example: CSRF Token Retrieval + Exploitation
β±οΈ Time-Based Detection in Multi-Step
Multi-step profiles support time-based detection through the checkTimeDelayGreps() method. This enables timing attacks where:
1οΈβ£ Step 1 sends a baseline request (no delay)
2οΈβ£ Step 2 sends a time-delay payload
β±οΈ The time difference is analyzed to confirm the vulnerability
π― Stop-on-Match Behavior
Multi-step profiles have built-in stop-on-match logic per step:
β When a step matches, subsequent payloads for the same step are skipped
β‘οΈ The sequence proceeds to the next step
β If a step fails to match, the entire sequence stops for that insertion point
π This is separate from the single-step stop-on-first-match optimization
π‘ Tips
π Start simple β Test each step independently as a regular profile before combining into a multi-step sequence
πͺ Use cookie reuse β Enable
reuseCookie: truewhen the next step depends on session state from the previous stepπ Use insertion point reuse β Set
insertionPoint: "same"when the entire attack chain should target the same parameterπ’ Order matters β Steps execute in array order; place prerequisite steps first
π Debug with Scanner tab β Use the Scanner tab to see per-request details for each step
Last updated
