Penetration Testing
June 12, 2026

API Penetration Testing Methodology: How We Find What Automated Scanners Miss

Ivan Stanev
Ivan Stanev
Founder & Senior Security Researcher
API Penetration Testing Methodology: How We Find What Automated Scanners Miss

What the Best API Penetration Testing Companies Actually Do Differently

The best API penetration testing companies combine full OWASP API Top 10 coverage with manual exploitation techniques that automated scanners cannot replicate. Scanners find exposed headers, unpatched libraries, and some injection vectors. They do not find Broken Object Level Authorization (BOLA), business logic bypass, or chained attack paths that cross multiple endpoints and user roles. Those findings require a human tester who understands how your application is supposed to behave, then methodically tests where that behavior breaks down.

At IVASTA Security, every API penetration test is manual-first. Our OSCP-certified testers build a complete model of your API surface before writing a single exploit, and every finding in the final report is manually confirmed with a working proof-of-concept payload.

Why Automated Scanners Fail API Security Testing

Automated scanners were built for the web application security model of 2010: HTML pages, form submissions, and server-rendered responses. Modern REST and GraphQL APIs do not follow that model. Scanners see HTTP traffic; they do not understand resource ownership, session context, or the semantic intent of a workflow.

The three vulnerability classes responsible for the majority of API breaches are structurally invisible to scanners:

  • BOLA (API1:2023): The scanner requests /api/v1/invoices/1042 and gets a 200. It does not know that user A should never see user B's invoice. Confirming that finding requires two separate authenticated sessions and a tester who knows to swap object identifiers between them.
  • Business logic flaws: A scanner cannot know that your SaaS billing API should prevent a free-tier user from calling the /export endpoint after skipping the subscription step. That requires understanding the intended workflow, then testing what happens when you skip, reverse, or repeat steps.
  • Chained attack paths: A low-severity information disclosure in one endpoint becomes critical when combined with a predictable ID in a second endpoint and a missing authorization check in a third. Scanners report each finding in isolation. Testers build the chain.

The table below shows where the gap is largest. This is not a knock on scanners as a category; they are useful for continuous monitoring and catching low-hanging regressions. For API security testing that surfaces the vulnerabilities attackers actually exploit, manual testing is not optional.

Vulnerability Category Automated Scanner IVASTA Manual API Pen Test
BOLA / IDOR detection Rarely: scanners cannot reason about object ownership across user sessions Yes: testers map object relationships and fuzz IDs across role boundaries
Business logic flaws Never: no semantic understanding of workflow intent Yes: testers model the intended flow and find where enforcement breaks
JWT algorithm confusion Rarely: dependent on static payload signatures Yes: alg:none, RS256-to-HS256 confusion, and weak secret brute-force tested manually
Chained attack paths Never: scanners test individual requests, not sequences Yes: exploitation chains modeled across multiple endpoints and sessions
False positive rate High: noisy output requires manual triage Low: every finding is manually confirmed before inclusion in report
Report usability Raw finding list with CVSS scores Severity-ranked, developer-ready remediation steps with proof-of-concept payloads

IVASTA's API Penetration Testing Methodology: Phase by Phase

Every engagement follows the same structured process, scoped to your API stack and adjusted for environment: REST, GraphQL, gRPC, or legacy SOAP.

Phase 1: Scoping and API Surface Mapping

Before testing starts, we need a complete inventory of what exists. Clients provide OpenAPI or Swagger specs where available, but we do not rely on documentation alone. API documentation is frequently out of date; undocumented endpoints are a consistent API security risk.

Surface mapping includes:

  • Static analysis of JavaScript bundles served by the application frontend to extract hardcoded endpoint paths
  • Subdomain enumeration targeting API-specific naming patterns (api., v2., internal., partner.)
  • Crawling authenticated sessions across multiple user roles to capture runtime endpoint behavior
  • Version crawling to identify deprecated v1 or beta endpoints still reachable in production

Phase 2: Authentication and Authorization Baseline

Authentication and authorization failures account for the top five risks in the OWASP API Top 10. We test these before moving to anything else because every subsequent test depends on understanding how access control is supposed to work.

Authentication testing covers:

  • JWT signature validation: alg:none attacks, RS256-to-HS256 algorithm confusion, weak HMAC secret brute-force
  • Token lifecycle: expiry enforcement, revocation on logout, refresh token rotation, and session fixation across re-authentication
  • OAuth flow integrity: PKCE enforcement, redirect URI validation, state parameter handling, and implicit flow usage

A representative JWT attack sequence looks like this in practice:

# Decode and inspect the JWT header $ echo "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9" | base64 -d {"alg":"RS256","typ":"JWT"}
# Attempt algorithm confusion: forge a token using the public key as the HMAC secret # If the server accepts alg:HS256 with the RS256 public key, the token is forged $ python3 jwt_confusion.py --token --pubkey rsa_pub.pem --alg HS256 [+] Forged token accepted: 200 OK on /api/v1/admin/users

Authorization testing maps every endpoint against every role and tests for vertical (privilege escalation) and horizontal (cross-user data access) authorization failures. This is where BOLA findings live.

Phase 3: OWASP API Top 10 Coverage

Every IVASTA API penetration test covers all ten risk categories from the 2023 OWASP API Security Top 10. The table below maps each category to the specific manual technique we use.

OWASP API Risk Vulnerability Class How IVASTA Tests It (Manual Approach)
API1:2023 Broken Object Level Authorization (BOLA) Manual parameter fuzzing across all authenticated endpoints, including hidden object IDs
API2:2023 Broken Authentication Token lifecycle testing: replay, revocation gaps, JWT algorithm confusion attacks
API3:2023 Broken Object Property Level Auth Response diffing across user roles to surface mass assignment and property exposure
API4:2023 Unrestricted Resource Consumption Pagination bypass, bulk endpoint abuse, and rate-limit circumvention under authenticated sessions
API5:2023 Broken Function Level Authorization Admin endpoint discovery via path prediction, HTTP verb tampering, and privilege escalation chains
API6:2023 Unrestricted Access to Sensitive Business Flows Multi-step workflow abuse: skipping payment steps, bypassing OTP, duplicating coupon redemptions
API7:2023 Server-Side Request Forgery (SSRF) URL parameter injection targeting cloud metadata endpoints (169.254.169.254, IMDSv2)
API8:2023 Security Misconfiguration Header audit, CORS policy review, debug endpoints, verbose error messages with stack traces
API9:2023 Improper Inventory Management Subdomain enumeration, API versioning crawl, shadow endpoint discovery via JS bundle analysis
API10:2023 Unsafe Consumption of APIs Third-party integration testing: webhook spoofing, response injection via poisoned upstream data

One category worth expanding on is Unrestricted Resource Consumption (API4:2023). Scanners test rate limiting by sending repeated requests from a single IP. Attackers bypass rate limits using distributed IPs, authenticated sessions, or by targeting batch endpoints that multiply the cost of each request server-side. We test the business logic of resource consumption, not just the presence of a rate-limit header.

Phase 4: Business Logic and Workflow Abuse

Business logic testing is the hardest part of API penetration testing to explain and the most valuable part of the engagement. There is no CVE for it. There is no scanner plugin. It requires the tester to understand what your API is supposed to do, then find what happens when the rules are not enforced.

Common patterns across SaaS and fintech API engagements:

  1. Quantity manipulation: A checkout API accepts a quantity parameter. The tester submits -1 and receives a negative charge applied as a credit. The scanner saw a 200 response and moved on.
  2. Step skipping: A multi-step enrollment workflow validates each step server-side except step 4. The tester POSTs directly to step 5 with a valid session cookie from step 3. Enrollment completes without the required KYC check.
  3. Coupon and referral abuse: A referral bonus endpoint does not check whether the referring and referred accounts share an IP or payment method. Automated account creation and self-referral generates credits without restriction.
  4. Webhook replay: An inbound webhook endpoint does not validate HMAC signatures on payment event notifications. An attacker replays a legitimate "payment_success" event to trigger order fulfillment without a real payment.

These findings do not map neatly to CVSS scores because their impact depends entirely on your business model. A BOLA finding in a healthcare API carrying ePHI is a potential HIPAA breach. The same BOLA in a public read-only dataset is informational. We score and contextualize findings against your specific risk profile, not a generic severity rubric.

Phase 5: Exploitation, Chaining, and Impact Demonstration

A penetration test is not a vulnerability list. The value is in demonstrating how findings combine into realistic attack scenarios. We chain findings where possible to show the full blast radius of a compromise.

A hypothetical example built from common patterns across API engagements: an information disclosure on a public endpoint returns internal user IDs in a response field the documentation never mentioned. A separate BOLA vulnerability allows authenticated users to fetch records by ID. A third endpoint, accessible without role validation, allows profile data export. Chain those three findings and you have unauthenticated bulk export of all user records. Each finding is medium or low severity in isolation. The chain is critical.

Every exploited finding ships with a proof-of-concept payload or curl command the development team can reproduce and confirm before the fix is applied.

Phase 6: Reporting and Remediation Support

The final report includes a severity-ranked finding list, a full narrative of the attack chains we built, proof-of-concept payloads, and developer-ready remediation guidance. We do not dump raw scanner output or CVSS scores without context.

The report structure:

  1. Executive summary: risk narrative for non-technical stakeholders, no jargon
  2. Methodology overview: scope, testing approach, tools used
  3. Finding detail per vulnerability: description, evidence, CVSS score, business impact, remediation steps
  4. Attack chain narratives: how findings combine into realistic scenarios
  5. Remediation tracking: a retest is included for all critical and high findings

For teams preparing for SOC 2 Type II audits or seeking compliance attestation, the report maps findings to the relevant Trust Services Criteria. For fintech clients under PCI DSS scope, findings are mapped to Requirement 6.2.4 and 6.3 where applicable.

GraphQL-Specific Testing: What REST Testers Miss

GraphQL requires a separate set of techniques. The query model is fundamentally different from REST, and many REST-oriented scanners treat GraphQL as a black box they cannot parse.

IVASTA's GraphQL testing covers:

  • Introspection abuse: If introspection is enabled in production, an attacker retrieves the full schema, including internal types and mutations not surfaced in the application UI.
  • Batched query attacks: GraphQL allows multiple queries in a single request. A rate limit that counts HTTP requests does not throttle an attacker who sends 100 queries per request.
  • Field-level authorization: REST APIs enforce authorization at the endpoint level. GraphQL authorization must be enforced at the resolver level. A single missing check on a nested field exposes data regardless of parent object permissions.
  • Query depth and complexity abuse: Without depth limiting and query complexity analysis, deeply nested queries trigger exponential resolver calls and function as a denial-of-service vector.
# Example: Batched introspection + data extraction in a single GraphQL request [{"query":"{__schema{types{name fields{name}}}}"}, {"query":"{users{id email ssn creditCard{number}}}"}] # Both queries execute in one HTTP request, bypassing per-request rate limits

What to Look for in an API Penetration Testing Company

If you are evaluating providers, the methodology questions that separate serious firms from scanner-wrapper shops:

  1. Do your testers hold current offensive security certifications, specifically OSCP, OSEP, or equivalent?
  2. Do you test GraphQL and gRPC, or only REST?
  3. How do you test BOLA? Can you describe the multi-session technique you use?
  4. Do you include business logic testing in scope, and how do you define the test cases?
  5. What does the final report include, and do you provide a retest after remediation?
  6. Can you provide a sample report before we sign?

Any firm that cannot answer the second and third questions specifically has testers running scanners with a manual review pass over the output. That is not the same as a manual API penetration test.

Schedule Your API Penetration Test

If your API handles user data, processes payments, or sits behind any compliance requirement, the question is not whether you need a penetration test but whether the one you run will actually find what matters. Book a scoping call with IVASTA Security. You will speak directly with a tester, agree on scope, and receive a fixed-price proposal within 48 hours. No sales handoff, no automated questionnaire.

Schedule a scoping call: IVASTA Security

Frequently Asked Questions

An API penetration test covers authentication and authorization testing, full OWASP API Top 10 vulnerability assessment, business logic analysis, and exploitation of confirmed findings with proof-of-concept payloads. A manual test goes beyond automated scanning to identify BOLA, chained attack paths, and workflow abuse that scanners cannot detect. The engagement ends with a severity-ranked report, developer-ready remediation guidance, and a retest for all critical and high findings after the development team applies fixes.

A scoped API penetration test for a typical SaaS product with 50 to 150 endpoints takes five to ten business days: two to three days of active testing, one to two days for exploitation and chaining, and one to two days for report writing. Larger API surfaces, multiple user roles, or complex GraphQL schemas extend the timeline. IVASTA provides a fixed-scope estimate after a 30-minute scoping call so you know the timeline and cost before signing.

Broken Object Level Authorization (BOLA), also called IDOR, is the top vulnerability in the OWASP API Top 10. It occurs when an API endpoint returns data based on an object identifier in the request without verifying that the requesting user is authorized to access that object. Automated scanners miss BOLA because confirming it requires two separate authenticated user sessions: one to identify the object ID pattern and one to verify that a second user can access the first user's data. Scanners test single-session request-response pairs and cannot reason about cross-user resource ownership.

Yes. IVASTA tests GraphQL APIs using techniques specific to the query model, including introspection abuse, batched query rate-limit bypass, field-level authorization testing, and query depth and complexity analysis. REST-oriented testing approaches do not translate directly to GraphQL because authorization must be enforced at the resolver level, not the endpoint level, and rate limiting that counts HTTP requests is trivially bypassed using batched queries.

IVASTA's API penetration testers hold OSCP (Offensive Security Certified Professional) certification as a baseline, with senior testers holding OSEP (Offensive Security Experienced Penetration Tester) and CRTO (Certified Red Team Operator). These are hands-on, proctored certifications that require demonstrated exploitation skill, not multiple-choice exams. You will work directly with certified testers throughout the engagement, not a project manager who passes work downstream.

A vulnerability assessment identifies and catalogues known vulnerabilities, typically using automated scanning tools cross-referenced against CVE databases. It tells you what version of a library is outdated or what TLS configuration is weak. An API penetration test goes further: testers attempt to actively exploit findings, chain vulnerabilities into realistic attack scenarios, and test for classes of vulnerability, like BOLA and business logic flaws, that have no CVE and no scanner signature. For compliance purposes, most frameworks including SOC 2, PCI DSS, and HIPAA specifically require penetration testing, not just a vulnerability scan.