Skip to content
Back to Blog
·10 min read·technology

OWASP ZAP: Free Automated Web Scanning for Indian Teams

OWASP ZAP is a free open-source scanner Indian teams can use for automated web app security testing, spider and active scans, before a manual VAPT engagement.

BR

Bachao.AI Research Team

Cybersecurity Research

Test Your Application

Security exposure this creates

Unpatched vulnerabilities in your tech stack are the #1 entry point for breaches targeting Indian businesses. Here's what to watch.

OWASP ZAP (Zed Attack Proxy) is a free, open-source web application scanner that finds common vulnerabilities — XSS, SQL injection, insecure headers, exposed debug endpoints — by crawling your site and probing it the way an attacker's tooling would. For Indian SMB teams with no dedicated security engineer, ZAP is the single best starting point: no license cost and enough automation to run inside a CI/CD pipeline. This guide covers the spider and AJAX spider, passive versus active scanning, authenticated scan contexts, the Automation Framework, CI/CD baseline scans, triaging false positives, and where ZAP's coverage stops and a manual VAPT engagement has to pick up.

Why Start With OWASP ZAP

Most Indian SMBs ship a web app or customer portal with zero automated security testing between releases. The gap isn't awareness — it's that manual penetration testing is episodic, usually once or twice a year, while code ships every week. OWASP ZAP closes that gap for the bugs that don't need a human: missing security headers, verbose error pages, outdated JavaScript libraries, obvious injection points, and misconfigured cookies.

ℹ️
INFO
ZAP is maintained under the OWASP Foundation, the same body behind the OWASP Top 10, the industry-standard list of critical web application risks. Findings map directly onto a framework auditors and clients already recognise.

Spider vs AJAX Spider: Mapping the Application

Before ZAP can scan anything, it needs to know what pages exist. That's what the two crawlers do, and picking the wrong one is the most common reason a first ZAP scan comes back nearly empty.

The traditional spider follows <a href> links and HTML forms found in server-rendered page source. It's fast and works well on classic multi-page sites, WordPress installs, and server-rendered admin panels.

The AJAX spider drives a real browser (via Selenium) to execute JavaScript and discover content that only appears after a script runs — which describes most modern React, Vue, and Angular front ends. If your app is a SPA and you only run the traditional spider, ZAP will report "no vulnerabilities found" not because your app is secure, but because it never saw past the loading screen.

⚠️
WARNING
Running only the traditional spider against a JavaScript-heavy front end is the most common cause of a false sense of security from ZAP. If your product is a SPA, the AJAX spider is not optional — run both, and give it enough time to fully render client-side routes.

Passive Scan vs Active Scan: Know the Difference Before You Click "Attack"

This distinction matters more than any other setting in ZAP, because getting it backwards can take down a production service.

Passive scanActive scan
What it doesAnalyses traffic ZAP already observed, no new requests sentSends crafted payloads to find exploitable issues
Risk to targetNone — read-onlyCan break forms, fill databases with test data, trigger account lockouts
FindsMissing headers, cookie flags, information disclosure, outdated librariesSQL injection, XSS, path traversal, command injection
Where to runAny environment, including productionStaging or authorised test environments only
SpeedFast, runs continuously as you browseSlow, can take hours on a large site
Passive scanning runs automatically the moment ZAP proxies traffic — it costs nothing and breaks nothing, which is why it's the default in CI baseline scans. Active scanning fires real attack payloads at every discovered parameter, and on a poorly built application that can mean corrupted records, spammed contact forms, or triggered lockouts.
🚨
DANGER
Never run an active scan against production without explicit written authorisation and a defined maintenance window. Active scanning is intrusive by design — treat it with the same authorisation discipline as any penetration testing activity under India's IT Act, 2000, and CERT-In's empanelment and reporting guidelines.

Know your vulnerabilities before attackers do

Run a free VAPT scan — takes 5 minutes, no signup required.

Book Your Free Scan

Authentication Contexts: Scanning Behind the Login Wall

Unauthenticated scanning only tests the public-facing surface of your app. The vulnerabilities that actually matter on a SaaS product or customer portal usually live behind authentication: the dashboard, the admin panel, the billing page, the API a logged-in user calls.

ZAP handles this through Contexts, which bundle together the scope (which URLs are in play), the authentication method, and session-handling rules:

  1. Define a Context and scope it to your target's in-scope URLs.
  2. Configure the authentication method — form-based login, JSON-based login, script-based auth for SSO/OAuth flows, or manual login where you record a sequence.
  3. Set up a user with valid test credentials specific to the scan environment — never production customer credentials.
  4. Configure session management so ZAP detects when it has been logged out (a common failure mode where a scan silently runs unauthenticated after the first session timeout).
  5. Add a logged-in/logged-out indicator — a regex ZAP checks against each response to confirm session state.
💡
TIP
Verify the logged-in indicator before starting a long active scan. A misconfigured indicator means ZAP can spend hours scanning an app that logged it out in the first ten minutes.

The Automation Framework: Making ZAP Repeatable

Manually clicking through ZAP's desktop UI works for a one-off assessment, but it doesn't scale to a team shipping weekly. The ZAP Automation Framework solves this with a YAML plan that defines the entire scan as code — target, context, spider settings, active scan policy, and report output — so the same scan runs identically every time, including from a CI runner.

A minimal automation plan looks conceptually like this:

env:
  contexts:
    - name: MyApp
      urls: [https://staging.example.in]
jobs:
  - type: spider
  - type: spiderAjax
  - type: passiveScan-wait
  - type: activeScan
  - type: report
    parameters:
      template: risk-confidence-html

Because the plan is a version-controlled file, security testing configuration goes through the same code review as everything else — no tribal knowledge locked in one person's desktop ZAP session.

Baseline Scans in CI/CD

For teams that want coverage on every pull request without the cost of a full active scan, ZAP ships purpose-built Docker images: a baseline scan that spiders the target and runs passive rules only, then fails or warns the build — fast enough for CI, safe enough for staging.

graph TD A[Spider and AJAX Spider] -->|Pages discovered| B[Passive Scan] B -->|Baseline findings| C[Active Scan] C -->|Raw alerts| D[Triage False Positives] D -->|Confirmed findings| E[Fix and Retest] style A fill:#1e3a5f,stroke:#3B82F6,color:#e2e8f0 style B fill:#1e3a5f,stroke:#3B82F6,color:#e2e8f0 style C fill:#5f1e1e,stroke:#EF4444,color:#e2e8f0 style D fill:#1e3a5f,stroke:#3B82F6,color:#e2e8f0 style E fill:#1e3d2f,stroke:#10B981,color:#e2e8f0

A typical CI wiring runs the baseline image against every staging deploy, publishes the report as a build artifact, and gates merge only on high-confidence, high-risk findings — treating everything else as a tracked backlog item. Full active scans, slower and riskier, are better scheduled on a recurring window against staging rather than every commit.

Triaging False Positives

A raw ZAP report from a real application is rarely a clean list of exploitable bugs — it's a mix of genuine findings, informational noise, and false positives, and treating every alert as equally urgent burns credibility with engineering fast.

Work through alerts using ZAP's built-in risk and confidence ratings together, not risk alone. A "High risk, Low confidence" alert on a reflected-XSS pattern the framework already auto-escapes is a classic false positive; a "Medium risk, High confidence" missing Content-Security-Policy header deserves more attention than its label suggests. Common false-positive sources:

    1. Framework auto-escaping — many frameworks neutralise the exact payload ZAP sent, but ZAP still flags the reflection pattern.
    2. WAF or CDN interference — a scan run through a WAF can produce alerts about the WAF's own error pages, not your application.
    3. Duplicate alerts — the same underlying issue reported once per URL parameter, inflating the apparent count.
    4. Informational alerts treated as vulnerabilities — comments in source or timestamp disclosure is context for a human, not an actionable finding alone.
Mark confirmed false positives directly in ZAP so they're suppressed on future scans — an untriaged, growing alert list is how teams stop reading ZAP reports altogether.
73%Indian organisations unaware whether they have ever been attacked, per DSCI's Cyber Security Maturity Survey (DSCI 2025)
390Vulnerability notes issued by CERT-In in 2025 alongside 1,530 threat alerts, underscoring the pace of new issues teams must track (CERT-In)

Where ZAP Stops and Manual VAPT Starts

ZAP is genuinely good at pattern-matching known vulnerability classes across every page and parameter it can reach. It is structurally unable to do several things a manual tester does routinely.

CapabilityOWASP ZAPManual VAPT
Known injection patterns (XSS, SQLi)YesYes
Missing security headers, cookie flagsYesYes
Business-logic flaws (e.g., price manipulation, workflow bypass)NoYes
Broken access control across user roles (IDOR)LimitedYes
Multi-step exploit chainingNoYes
Context-aware risk prioritisation for your businessNoYes
Compliance-ready, signed report for regulators/clientsNoYes, especially with a CERT-In empanelled partner
Business-logic testing is the biggest gap. ZAP has no concept of "a customer should never view another customer's invoice by changing an ID in the URL" — that's an authorisation flaw a human tester finds by understanding intent, not by pattern-matching a payload. The same applies to multi-step attack chains, where an attacker combines two low-severity findings into a critical compromise; ZAP tests each alert in isolation.
🛡️
SECURITY
Treat ZAP as your continuous, free first line of defence — not a substitute for periodic independent testing. Run baseline scans on every deploy, schedule active scans regularly, and pair both with a manual VAPT engagement, delivered with a CERT-In empanelled partner where regulatory submission requires it, at least annually or after any major architectural change.
🎯Key Takeaway
OWASP ZAP is free, automatable, and genuinely effective against the vulnerability classes it's built to catch — but it cannot reason about business logic, chain findings the way an attacker would, or replace the judgment a manual tester brings. Use it as the always-on first layer; use independent VAPT for the depth ZAP structurally cannot reach.
pie title Alert Severity Distribution in a Typical ZAP Scan "Informational" : 40 "Low" : 30 "Medium" : 20 "High" : 10

Getting Started This Week

For a team with no existing security tooling, a realistic first step looks like this: install ZAP or pull the Docker baseline image, point it at a staging copy of your application, run the spider and AJAX spider together, review the passive scan results first since they're zero-risk, then schedule an authorised active scan during a low-traffic window. Wire the baseline scan into CI once the manual run is clean, so every future deploy gets checked automatically.

Platforms like Bachao.AI build continuous automated scanning — including ZAP-class coverage — into a broader VAPT pipeline purpose-built for Indian SMBs, so teams get always-on visibility without owning scan infrastructure themselves. Dhisattva AI Pvt Ltd designed the platform around exactly this gap: the tooling is free, but most SMBs lack the in-house time to run and triage it consistently.

Next Steps

Automated scanning with OWASP ZAP is the right free first step for any Indian team that has shipped a web app with no security testing in place. It will not replace a manual penetration test — but it will catch a meaningful share of real issues before an attacker or an auditor does, at zero licensing cost.

Ready to go beyond automated scanning? Get a free VAPT scan, or browse the Bachao.AI blog for more hands-on security guides. If your organisation processes personal data, also review our DPDP compliance guide.

Frequently Asked Questions

Is OWASP ZAP really free for commercial use?
Yes. ZAP is a fully open-source project under the OWASP Foundation, licensed under Apache 2.0, with no paid tier gating core scanning functionality. It's free to use for commercial applications, including in CI/CD pipelines.
What is the difference between the ZAP spider and the AJAX spider?
The traditional spider follows links and forms in server-rendered HTML, while the AJAX spider drives a real browser to execute JavaScript and discover routes in single-page apps. Modern React, Vue, or Angular front ends need the AJAX spider or large parts of the app go uncrawled.
Is it safe to run an OWASP ZAP active scan on my production site?
No. Active scans send live attack payloads that can corrupt data, trigger account lockouts, or spam forms. Run active scans only against staging or explicitly authorised test environments during a defined window, never against live production traffic.
How do I run OWASP ZAP inside a CI/CD pipeline?
Use ZAP's baseline scan Docker image, which spiders the target and runs passive-only checks, fast and safe enough to run on every staging deploy. Full active scans are better scheduled on a recurring window against staging rather than on every commit, given their runtime and risk profile.
Why does OWASP ZAP report false positives?
Common causes include frameworks that auto-escape the exact payload ZAP sent, WAFs or CDNs returning their own error pages that get flagged, and duplicate alerts across similar parameters. Triage using both risk and confidence ratings together, and mark confirmed false positives so they're suppressed on future scans.
Can OWASP ZAP replace a manual penetration test?
No. ZAP is strong at pattern-matching known vulnerability classes like XSS and missing headers, but it cannot detect business-logic flaws, chain multiple findings into a critical exploit, or produce a compliance-ready report the way a manual VAPT engagement can, especially one delivered with a CERT-In empanelled partner.
BR

Bachao.AI Research Team

Cybersecurity Research

AI-powered security research and threat intelligence from the Bachao.AI team. Covering the latest vulnerabilities, CVEs, and cybersecurity developments affecting Indian businesses.

Get cybersecurity insights for Indian SMBs

Weekly vulnerability alerts, DPDP compliance tips, and security guides. No spam — unsubscribe anytime.

We respect your privacy. Your email is never shared.

Application-layer testing against the OWASP Top 10

Free automated scan — risk score in under 2 hours. No credit card required.

Test Your Application
Find your vulnerabilitiesStart free scan →