Skip to main content

Overview

The Website Scanner performs security testing of web applications. It crawls your application, identifies technologies, and tests for vulnerabilities through active payload injection and passive response analysis. The Website Scanner is a vulnerability scanner: it actively tests web applications for security weaknesses. Discovered technologies are added to your Attack Surface. Identified vulnerabilities are reported as findings. The Website Scanner is a DAST (Dynamic Application Security Testing) tool: it tests your running application from the outside, without access to source code. If you need source code analysis, that requires a separate SAST tool.

Supported targets

Target typeExamples
URLhttps://example.com, https://app.example.com/admin
By default, the scanner follows redirects within the same domain (e.g., example.com to www.example.com). Configure this with Follow redirects. To scan a specific directory, include the path in the URL (e.g., https://example.com/app/).

Scan types

ModeDescriptionUse case
LightFast, passive, non-intrusive scanQuick reconnaissance
DeepAll tests enabledFull security audit
CustomUser-configured tests and optionsTargeted testing

Parameters comparison

ParameterLightDeepCustom
Authentication
Spidering depth4101-10
Maximum spider time15 min1 hour10s-1h
Maximum IPs101000-
Spidering approachClassicAutoConfigurable
Requests per second-1001-10,000

Tests comparison

Initial tests
TestLightDeep
Fingerprint Website
Server Software Vulnerabilities
Robots.txt
JavaScript Libraries
SSL/TLS Certificates
Client Access Policies
HTTP Debug Methods
Security.txt File Missing
CORS Misconfiguration
Resource Discovery
Find Sensitive Files
Find Admin Consoles
Find Interesting Files
Information Disclosure
Software Identification
Misconfigurations
Find GraphQL Endpoint
Fuzz OpenAPI Locations
AI-powered endpoint discovery
Passive checks
TestLightDeep
Security Headers
Cookie Security
Directory Listing
Secure Communication
Weak Password Submission
Commented Code/Error Codes
Clear Text Submission of Credentials
Verify Domain Sources
Mixed Encryptions Content
Sensitive Data Crawl
Find Login Interfaces
Find File Upload
Path Disclosure
SQL Statement in Request Parameter
Password Returned in Later Response
Session Token in URL
API Endpoints
Active checks
TestLightDeep
SQL Injection
XSS
Local File Inclusion
OS Command Injection
Server Side Request Forgery (SSRF)
Open Redirect
Broken Authentication
PHP Code Injection
Server-Side JavaScript Code Injection
Ruby Code Injection
Python Code Injection
Perl Code Injection
Log4j Remote Code Execution
Server-Side Template Injection (SSTI)
XML External Entity Injection (XXE)
ViewState Remote Code Execution
Client-Side Prototype Pollution
Exposed Backup Files
Request URL Override
HTTP Request Smuggling
Cross-Site Request Forgery (CSRF)
Insecure Deserialization
NoSQL Injection
Session Fixation
Enumerable Parameter (IDOR)
JWT Weaknesses
Response Header Injection
The Deep scan performs active vulnerability testing and generates significant network traffic (~10,000+ HTTP requests). Most correctly configured security monitoring systems will detect this scan. Do not use it if you don’t have proper authorization from the target website owner.

Custom scan

Full control over scan parameters:
  • Select specific tests to run
  • Configure spider settings
  • Set request rate limits
  • Configure authentication
  • Define URL exclusions and inclusions

Initial tests

Initial tests identify technologies, configuration files, and potential entry points before active vulnerability testing begins. See the tests comparison table for Light vs Deep availability.
TestDescription
Fingerprint WebsiteIdentifies web server software, frameworks, CMS platforms, and other technologies using Wappalyzer
Server Software VulnerabilitiesChecks if detected software versions have known CVEs in vulnerability databases
Robots.txtAnalyzes robots.txt for sensitive paths, directories, and disallowed content
JavaScript LibrariesIdentifies outdated JavaScript libraries with known vulnerabilities (jQuery, Angular, etc.)
SSL/TLS CertificatesValidates certificate configuration, expiration, trust chain, and common SSL issues
Client Access PoliciesChecks crossdomain.xml and clientaccesspolicy.xml for overly permissive cross-domain rules
HTTP Debug MethodsTests if TRACE/TRACK methods are enabled, which can enable cross-site tracing (XST) attacks
Security.txt File MissingChecks for security.txt file per RFC 9116 that helps security researchers report issues
CORS MisconfigurationTests Cross-Origin Resource Sharing headers for overly permissive or insecure configurations
Resource DiscoveryFuzzes for common directories, files, and endpoints using extensive wordlists
Find Sensitive FilesSearches for backup files (.bak, .old), configuration files, and credential files
Find Admin ConsolesDiscovers administrative interfaces like /admin, /wp-admin, /phpmyadmin, etc.
Find Interesting FilesSearches for files that may reveal information: logs, database dumps, git repositories
Information DisclosureLooks for exposed debug information, stack traces, error details, and internal paths
Software IdentificationIdentifies specific software components, plugins, and their versions
MisconfigurationsDetects common web server and application misconfigurations that could lead to security issues
Find GraphQL EndpointDiscovers GraphQL API endpoints and checks for exposed introspection queries
Fuzz OpenAPI LocationsSearches common locations for OpenAPI/Swagger specification files (openapi.json, swagger.yaml, etc.)
AI-powered endpoint discoveryUses an AI browser agent to navigate the site and discover endpoints that traditional crawling misses
Some initial tests like “Find interesting files” and “Information disclosure” may take several hours to complete as they test many potential paths.

Passive checks

Passive checks analyze server responses without sending attack payloads. These are safe and non-intrusive. See the tests comparison table for Light vs Deep availability.
TestDescription
Security HeadersChecks for CSP, HSTS, X-Frame-Options, X-Content-Type-Options, X-XSS-Protection, and other security headers
Cookie SecurityValidates Secure, HttpOnly, and SameSite cookie attributes to prevent session hijacking
Directory ListingDetects directory indexes that expose file listings to attackers
Secure CommunicationChecks for HTTPS enforcement, HSTS, and secure transport configuration
Weak Password SubmissionChecks if passwords are submitted over unencrypted HTTP connections
Commented Code/Error CodesFinds debug information, stack traces, HTML comments, and error messages in responses
Clear Text Submission of CredentialsDetects credentials transmitted without TLS encryption
Verify Domain SourcesChecks for resources (scripts, styles) loaded from untrusted third-party domains
Mixed Encryptions ContentDetects HTTP resources loaded on HTTPS pages, which can be intercepted
Sensitive Data CrawlIdentifies sensitive information like emails, phone numbers, and API keys in page content
Find Login InterfacesDiscovers login pages, authentication forms, and password reset functionality
Find File UploadIdentifies file upload functionality that could be exploited for malware upload
Path DisclosureDetects exposed filesystem paths in error messages and responses
SQL Statement in Request ParameterDetects SQL queries passed in URL parameters, indicating potential misconfiguration
Password Returned in Later ResponseChecks if submitted passwords appear in subsequent server responses
Session Token in URLDetects session IDs passed in URLs, which can be leaked via referer headers or logs
API EndpointsIdentifies API endpoints discovered during crawling for further testing

Active checks

Active checks send payloads to identify exploitable vulnerabilities. These tests are only available in Deep scan mode. See the tests comparison table for Light vs Deep availability.
Active checks send attack payloads to your application. Only run these against systems you have explicit authorization to test.
TestDescription
SQL InjectionTests for SQL injection flaws in parameters that allow database queries to be manipulated
XSSTests for reflected, stored, and DOM-based cross-site scripting vulnerabilities
Local File InclusionTests for path traversal (../) and local file read vulnerabilities (LFI)
OS Command InjectionTests for command execution on the underlying operating system via shell metacharacters
Server Side Request Forgery (SSRF)Tests if the server can be tricked into making requests to internal resources or third parties
Open RedirectTests for URL redirect vulnerabilities that can be abused for phishing attacks
Broken AuthenticationTests for authentication bypass, weak credentials, and session management flaws
PHP Code InjectionTests for PHP code execution via parameters (eval, include, etc.)
Server-Side JavaScript Code InjectionTests for Node.js/JavaScript code execution on the server
Ruby Code InjectionTests for Ruby code execution via ERB templates or eval
Python Code InjectionTests for Python code execution via eval, exec, or template injection
Perl Code InjectionTests for Perl code execution via backticks or system calls
Log4j Remote Code ExecutionTests for Log4Shell (CVE-2021-44228) and related Log4j vulnerabilities
Server-Side Template Injection (SSTI)Tests for template engine exploitation in Jinja2, Twig, Freemarker, Velocity, etc.
XML External Entity Injection (XXE)Tests for XXE attacks that can read local files or perform SSRF via XML parsers
ViewState Remote Code ExecutionTests for .NET ViewState deserialization leading to remote code execution
Client-Side Prototype PollutionTests for JavaScript prototype pollution that can lead to XSS or RCE
Exposed Backup FilesActively searches for backup files (.bak, ~, .swp) with sensitive content
Request URL OverrideTests for host header injection and X-Forwarded-Host override attacks
HTTP Request SmugglingTests for CL.TE and TE.CL request smuggling between front-end and back-end servers
Cross-Site Request Forgery (CSRF)Tests for missing or weak CSRF token protections on state-changing requests
Insecure DeserializationTests for unsafe deserialization in Java, PHP, Python, and .NET leading to RCE
NoSQL InjectionTests for injection in MongoDB, CouchDB, and other NoSQL databases
Session FixationTests if the application accepts externally set session identifiers
Enumerable Parameter (IDOR)Tests for insecure direct object references by manipulating ID parameters
JWT WeaknessesTests for JWT algorithm confusion (none, HS256/RS256), weak secrets, and expiration issues
Response Header InjectionTests for CRLF injection in HTTP headers that can lead to cache poisoning or XSS

OWASP Top 10 coverage

The Website Scanner’s active and passive checks cover most OWASP Top 10 (2021) categories. The table below maps each category to the relevant tests.
OWASP Top 10 (2021)CoverageRelevant tests
A01: Broken Access ControlPartialIDOR, CSRF, Session Fixation, Broken Authentication
A02: Cryptographic FailuresPartialSecure Communication, Cookie Security, Clear Text Submission of Credentials, Mixed Content, SSL/TLS Certificates
A03: InjectionBroadSQL Injection, NoSQL Injection, OS Command Injection, XSS, PHP/JS/Ruby/Python/Perl Code Injection, XXE, SSTI, Log4j RCE
A04: Insecure DesignNoBusiness logic flaws require manual testing
A05: Security MisconfigurationBroadSecurity Headers, CORS Misconfiguration, HTTP Debug Methods, Directory Listing, Information Disclosure, Misconfigurations
A06: Vulnerable and Outdated ComponentsYesServer Software Vulnerabilities, JavaScript Libraries
A07: Identification and Authentication FailuresPartialBroken Authentication, JWT Weaknesses, Session Token in URL, Weak Password Submission, Session Fixation
A08: Software and Data Integrity FailuresPartialInsecure Deserialization, ViewState RCE, Client-Side Prototype Pollution
A09: Security Logging and Monitoring FailuresNoRequires manual review of server and application logging configuration
A10: SSRFYesSSRF, Request URL Override
Automated scanning cannot fully cover A01 or A04. Broken access control issues based on business context (such as one user accessing another user’s data) need manual testing. Insecure design flaws are not detectable by scanners. A09 requires inspecting server and application logging configuration directly.

Engine options

Engine options configure how the spider crawls your application to discover pages, forms, and functionality.

Spidering approach

ApproachDescriptionUse case
AutoAutomatically detects and uses the best approachMost applications (default)
ClassicTraditional HTML parsing and link followingStandard websites
SPAJavaScript-aware crawling with browser renderingReact, Angular, Vue apps

Limits

SettingDescriptionRangeDefault
Spidering DepthMaximum crawl depth measured by the number of slashes in the URL1-1010
Maximum spidering timeMaximum spider duration in seconds10-36003600 (1 hour)
Requests per secondRate limit for requests (actual speed may be lower)1-10,000100

Included URLs

Add URLs to be included in the spidering process. This allows the scanner to reach endpoints that are hard to find automatically or are not linked with other endpoints. Enter one URL per line:
https://www.example.com/hidden-page
https://www.example.com/service-endpoint/

Excluded URLs

Add URLs to be excluded from the spidering process. This stops the scanner from processing endpoints and limits the scope, making it useful when certain areas do not require scanning for vulnerabilities. Enter one URL per line:
https://www.example.com/docs
https://www.example.com/blog/
Always exclude logout URLs, delete actions, and other destructive endpoints to maintain scan stability. Example exclusions: /logout, /signout, /delete, /remove.

Subdomains in scope

Add subdomains of the target to be scanned if requests to them are found during the spidering process. This allows the scanner to expand its scanning scope to specific subdomains of the target. If left empty, only the subdomain api will be considered in scope. For example, if http://example.com is the target, the subdomain api.example.com will be in scope by default.

Authentication

Configure authentication to test protected areas of your application. Authentication is available in Deep and Custom scan modes only.
MethodDescriptionUse case
Automatic login formScanner fills and submits your login formSimple login pages
Recorded authenticationReplay Chrome Recorder JSON fileComplex multi-step logins
Cookie authenticationUse existing session cookiesAny cookie-based auth
Header authenticationSend custom headers (JWT, API keys)API and token-based auth
For detailed authentication configuration, see Authenticated scanning.

How it works

The Website Scanner works in these steps:
  1. Fingerprinting: Identifies web server, technologies, and frameworks
  2. Crawling: Discovers pages, forms, and functionality using the selected spider approach. Uses AI-powered soft 404 detection to filter out false positives.
  3. Initial testing: Searches for sensitive files, admin panels, and configuration issues
  4. Passive analysis: Analyzes all responses for security issues without sending payloads
  5. Active testing: Injects payloads into parameters to test for vulnerabilities
  6. Reporting: Generates findings with evidence and remediation guidance

Follow-up actions

After identifying vulnerabilities:
  • Prioritize by severity: Address Critical and High findings first
  • Validate findings: Use SQLi Exploiter to confirm SQL injection
  • Test APIs: Run API Scanner for REST and GraphQL endpoints
  • Check CMS: Use WordPress Scanner for WordPress sites
  • Find hidden content: Run URL Fuzzer for additional discovery
  • Schedule regular scans: Set up Scheduled scans for continuous monitoring