Safeguard
Security Guides•

Can DAST find blind vulnerabilities? Out-of-band testing explained

Can DAST find blind bugs that show nothing in the response? Yes, with out-of-band testing, where the app calls back to a listener. Limits included.

Safeguard Security Team
7 min read

Yes, some can. A blind vulnerability gives no visible sign in the HTTP response, so a normal scan misses it. Out-of-band testing works around this by planting a payload that makes the app contact a server the tester controls, and the callback is the proof.

What "blind" means

In most web attacks the tester reads the response to see whether the payload worked. A blind flaw hides that signal. The server may run a query, fetch a URL or process a template, yet return an ordinary page. Examples include server-side request forgery, some injection flaws that run in background jobs, and bugs triggered when an admin later opens a record.

What "out-of-band" means

Out-of-band means the evidence arrives on a different channel than the response. The scanner sends a request containing a unique address that points to an external listener. If the application resolves that address or requests it, the listener records the hit. Because each payload carries a unique tag, the scanner can match the callback to the exact request that caused it.

The ZAP OAST add-on documentation describes this as letting you detect and exploit out-of-band vulnerabilities in web applications. It also notes that scan rules using it may produce alerts that are not seen immediately, or are not attributed to a specific active scan, since the callback can happen out of band and potentially at a later time.

What that delay means for you

SituationWhat to do
Alert appears after the scan endedKeep the listener and the session open long enough to catch late callbacks
Alert has no clear source requestUse the payload tag to find the original request in your logs
No callbacks at allCheck egress rules, they may be blocking the app from reaching the listener

That last row matters. Many production networks block outbound traffic. If the app cannot call out, an out-of-band test returns nothing, and a quiet result may reflect the network, not safety.

Steps to run an out-of-band test

  1. Confirm you can receive callbacks. Use a listener reachable from the test environment, either a hosted one or one you run.
  2. Check egress. Decide whether the test app may call that listener. If policy says no, plan a different approach.
  3. Enable the rules. Turn on out-of-band rules in your scan policy and give the scanner the listener address.
  4. Run the scan and keep waiting. Do not tear down the listener when the crawl finishes. Allow a grace period.
  5. Match and verify. For each callback, find the originating request, reproduce it by hand and confirm the cause.
  6. Fix and retest. Often the fix is an allowlist for outbound requests or safer parsing.

Privacy and policy points

Using an external listener means data from your test app, such as request details, may leave your network. Use test data only, and check your policy before sending payloads to a hosted service. Self-hosting the listener keeps traffic inside your boundary.

Limits

Out-of-band testing does not cover everything. It catches flaws that cause an outbound call, not every kind of blind bug. A time-based or error-based check may be needed for others. It also needs a real target path: a scanner can only plant payloads in inputs it found.

A worked example

A team runs an invoice service that fetches a logo from a URL a customer supplies. The page returns the same "Saved" message whatever the URL. A normal scan sees nothing wrong.

With out-of-band testing on, the scanner submits the form with a unique address in the logo field, such as a random tag on a listener domain. A short time later the listener logs a request from the invoice service's network address, with the same tag. That callback proves the service fetches attacker-chosen URLs, which is the pattern behind server-side request forgery.

The team follows a clear sequence.

  1. Confirm the finding. They submit the same request by hand with their own listener address and see the callback again.
  2. Measure the reach. They try an internal address in a test environment to see whether the service can reach private systems. They use test systems only.
  3. Choose a fix. They restrict the fetcher to an allowlist of approved hosts, block private address ranges, and set short timeouts.
  4. Retest. They resubmit the payload and confirm no callback arrives.
  5. Keep a regression test. They add the case to their test suite.

Where blind bugs hide

FeatureWhy it can be blind
Link previews and URL importersServer fetches the URL and shows a generic result
Webhook and callback settingsRequests go out later, from a queue
PDF and image generatorsRendering engine loads remote resources silently
Email and notification templatesInput is processed when a message is sent
Admin review screensPayload fires when staff open a record
Log and analytics pipelinesInput is processed in a separate system

Time matters

Some callbacks arrive minutes or days after the request. If a scan finishes and the listener is shut down, those callbacks are lost. Keep the listener running for a defined grace period, and review its log again later. Note in the record that late callbacks may still appear.

Decide who runs the listener

OptionBenefitConcern
Hosted by a third partyQuick to startTest traffic details leave your network
Run by you, outside your networkControl over logsYou must maintain it and secure it
Run by you, inside a lab networkData stays insideThe app must be allowed to reach it

Pick the option that matches your data rules. Use test data in every case.

What a quiet result means

No callbacks does not prove the app is safe. It may mean outbound traffic is blocked, the payloads never reached the right inputs, or the processing happens in a system you did not test. Say so plainly in the report, and record the egress rules you observed.

Where Safeguard fits

This is a category explainer on web testing. Safeguard's own focus is the software you ship, including SBOM and dependency scanning with reachability analysis. You can run a free scan at gold.safeguard.sh/scan.

Try it yourself

Click through it at your own pace, or open it full screen.

Watch one scan from crawl to results and relate it to the steps above.

Quick check

Why did my out-of-band scan find nothing?

The app may be blocked from calling out, or the callback may arrive after you stopped listening.

Is an out-of-band callback proof of a vulnerability?

It is strong evidence. Reproduce it by hand to confirm the cause before filing a fix.

Which features should I test first for blind issues?

Start with anything that fetches a URL, sends a webhook, renders a document or processes input later, such as admin review screens and notification templates.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.