🧠Smart Scan

Smart Scan is one of the most powerful features of Burp Bounty Pro. It uses Rules to automatically trigger active scanning profiles when specific passive conditions are detected β€” creating intelligent, context-aware scanning workflows.

πŸ’‘ Concept

Smart Scan follows an IF-THEN pattern:

IF passive profile(s) match β†’ THEN execute active profile(s)

This means:

  1. πŸ‘οΈ Passive profiles continuously analyze all traffic (requests and responses)

  2. πŸ“‹ When a passive profile matches, rules check if conditions are met

  3. 🎯 If conditions are met, active profiles are automatically executed against the matched request

❓ Why Smart Scan?

Instead of running all active profiles against every request (which is slow and noisy), Smart Scan:

  • ⚑ Reduces scan time β€” Only tests relevant vulnerabilities for each target

  • 🎯 Reduces false positives β€” Only scans when context suggests a vulnerability is likely

  • πŸ€– Automates workflows β€” No manual intervention needed to target specific technologies

  • πŸ–₯️ Enables technology-specific testing β€” Detects WordPress, Jira, Spring, etc. and runs their CVE profiles

βš™οΈ How It Works

πŸ“˜ Example: WordPress Detection

  1. πŸ‘οΈ Passive Response profile Wordpress detection matches responses containing WordPress indicators (e.g., wp-content, wp-includes)

  2. πŸ“‹ Rule Wordpress_Rule is configured:

    • IF: Passive Response profile Wordpress detection matches

    • THEN: Execute active profiles: Wordpress_user_enum_oembed, Wordpress_user_enum_json, Wordpress_directory_listing, Wordpress_Path_Traversal, Wordpress_Config_Accessible, etc.

  3. 🎯 Active scanning automatically begins on the matched request with WordPress-specific profiles

πŸ“˜ Example: SQL Injection Parameter Detection

  1. πŸ‘οΈ Passive Request profile SQLi_Parameters detects parameters like id=, user_id=, query=

  2. πŸ“‹ Rule SQLi_Rule is configured:

    • IF: Passive Request profile SQLi_Parameters matches

    • THEN: Execute active profiles: SQLi, SQLi_Timebased_Encoded_Space

  3. 🎯 Active scanning targets only the requests with suspicious parameters

πŸ“‹ Rule Structure

Each rule consists of:

πŸ” Match Conditions (IF)

One or more passive profile matches that must be satisfied:

  • πŸ“¨ Passive Request profiles β€” Match patterns in HTTP requests

  • πŸ“© Passive Response profiles β€” Match patterns in HTTP responses

  • πŸ”— Logic operators β€” Combine conditions with AND/OR:

    • AND β€” All conditions must match

    • OR β€” At least one condition must match

🎯 Execute Actions (THEN)

What to do when conditions are met:

  • πŸ“ Execute specific profiles β€” Run named active profiles

  • 🏷️ Execute profiles by tag β€” Run all active profiles with a specific tag (e.g., all profiles tagged "XSS")

  • 🎯 Match scope β€” Execute on "All Matches" or "First Match" only

πŸ”„ Smart Scan Flow

βš™οΈ Configuration

⚑ Scanner Settings

When Smart Scan rules trigger active scans automatically, they use default scanner settings (10 threads, 10 concurrency, 10 RPS). These defaults are suitable for most scenarios.

When you manually launch a Smart Scan via the context menu, the URL Filter popup appears and you can configure per-scan settings (Threads, Concurrency, Requests per second) just like with Active Scan.

See Scan Control for details on per-scan performance configuration.

βœ… Enabling/Disabling Rules

  • Go to Burp Bounty Pro > Rules tab

  • Enable/disable individual rules with the checkbox

  • Only enabled rules participate in Smart Scan

πŸ“¦ Default Rules

Burp Bounty Pro ships with 27 pre-configured rules covering:

  • πŸ–₯️ Technology detection β€” WordPress, Jira, Spring Boot, Drupal, Symfony, Weblogic, CouchDB, etc.

  • πŸ’‰ Vulnerability parameters β€” SQLi, XSS, RCE, LFI, SSRF, SSTI, Open Redirect

  • 🌐 Bulk scanning β€” Disabled by default: scan all requests with specific profile groups

See Default Rules for the complete list.

πŸ“– Creating Custom Rules

See Creating Rules for a step-by-step guide.

Last updated