WAF Detection: What a Web Application Firewall Means for Your Scan
A WAF silently absorbs attack traffic β including the probes your scanner sends. Here is how WAF detection works, why it changes what a scan can honestly report, and what both site owners and security teams should do about it.
π Table of contents
Run a scan against a protected website and the results carry an asterisk nobody prints: "everything below was observed through a filter whose job is to stop exactly these requests." That filter is the WAF β the Web Application Firewall β and understanding its effect on scanning is the difference between reading a report correctly and over-trusting a clean result.
What a WAF actually does
A WAF sits between the visitor and your origin server, inspecting every request against a ruleset of known-bad patterns:
- 𧬠SQL injection payloads β quote sequences,
UNION SELECT, tautology probes - β‘ XSS payloads β script tags, event handlers, encoded script fragments
- π Path traversal β
../sequences, encoded dot-dot variants - π€ Bot and scanner signatures β known tool user-agents, aggressive request rates
- π¦ Known-exploit requests β matching CVE-specific URI patterns
Cloudflare, AWS WAF, Akamai, ModSecurity, F5 β the products differ, the concept is identical: match bad patterns, block or challenge the request.
How a scanner detects a WAF
Detection is behavioral, not branded. Signals a scanner correlates:
| Signal | What it looks like |
|---|---|
| Block pages | Distinctive 403 bodies ("Attention Required", vendor-named error pages) |
| Challenge loops | JS challenges, CAPTCHAs, managed challenge redirects |
| Fingerprint headers | cf-ray, x-akamai-*, x-sucuri-id, server: cloudflare |
| Payload-dependent behavior | Benign requests pass; a harmless probe payload returns blocked |
| Timing patterns | Sudden delays or connection resets after probe bursts |
When enough signals align, the scan reports: a WAF is present and active on this target. That single finding recontextualizes everything else in the report β which is exactly why we treat WAF detection as a first-class result in our scanner rather than a footnote.
Why a WAF changes scan results
The uncomfortable mechanics:
- π¬ A scanner tests for SQL injection by sending a payload that looks like SQL injection
- π§± The WAF sees a textbook attack signature and blocks it
- π The origin never receives the probe, so no vulnerable behavior is ever observed
- π The scan reports no SQL injection finding β not because the app is safe, but because the probe never landed
The vulnerability can still exist at the origin. The WAF simply stands in front of it. Any rule gap β a new bypass technique, a misconfigured exception, a legacy rule mode β re-exposes the underlying flaw instantly. This is why security teams treat WAF-protected targets as under-reported, not verified clean.
Reading a WAF-flagged report correctly
When your scan result says a WAF is present:
- β Infrastructure findings remain trustworthy β TLS problems, missing headers, exposed files, and DNS issues are observed on responses the WAF serves, not blocks
- β οΈ Injection-class findings trend toward under-reporting β treat "none found behind a WAF" as "none reachable through the WAF today"
- π Re-scan after rule changes β WAF mode switches and new rule sets change visibility overnight
- π§ͺ For certainty, test at the origin β allowlisting the scanner's source or testing a staging copy without the WAF gives the unfiltered truth; evidence-verified findings methodology (as we describe in our evidence-verified scanning article) matters even more here
For site owners: the right way to combine WAF + scanning
A WAF is a valuable layer β deployed in minutes, absorbing commodity attacks around the clock. Use it as one layer, deployed with full knowledge of its blind spot:
- π§± Keep the WAF on β it defeats the automated majority of attacks cheaply
- π οΈ Fix the findings the scan can see β headers, TLS, exposed content, versions
- π Periodically scan the origin directly β staging copies, or production with scanner allowlisting β to see what the WAF hides
- π‘ Scan on a schedule β WAF rules and origin code both drift; our continuous monitoring re-checks both directions weekly
- π¨ Treat WAF block-rate spikes as signal β a sudden burst of blocks is often reconnaissance for a technique your ruleset does not yet know
The mature position on WAFs is neither dismissal nor dependence: it is a shield that blocks the attacks it recognizes, in front of an application you keep fixing anyway. The scanner's job β and ours β is to tell you clearly which of the two worlds each finding came from.
Security research and engineering at 2MNY β the team behind 282 free website-security scanners and the open-source Website Vulnerability Scanner. We find exposed secrets, misconfigurations and real vulnerabilities, then explain how to fix them in plain language.
1 What is a WAF in web security?
A Web Application Firewall (WAF) inspects HTTP traffic between visitors and your web server, blocking requests that match known attack patterns such as SQL injection and XSS payloads before they reach your application.
2 Can a vulnerability scanner scan through a WAF?
A scanner can detect that a WAF is present and adjust its approach, but a WAF intentionally blocks malicious-looking probes, so scans behind a WAF can under-report application vulnerabilities. The honest result combines WAF-aware external scanning with internal or origin-level testing.
3 Does having a WAF mean I don't need to fix vulnerabilities?
No. WAFs are bypassable β rule sets lag behind new techniques, and any misconfiguration opens gaps. Treat the WAF as a protective layer, and fix the underlying vulnerabilities it masks.