Developer laptop showing application code with a security shield, representing web application and API testing

Offensive & Application Security

Web application and API security testing

In-depth testing of web applications and APIs, focused on authentication, authorisation, business logic and data exposure.

Coverage
Web applications, single-page apps, and REST, GraphQL and SOAP APIs
Approach
Authenticated, role-by-role testing (grey-box) recommended
Reference standards
OWASP WSTG, OWASP ASVS, OWASP Top 10, OWASP API Security Top 10 (2023)
You receive
Executive summary, technical report with reproducible requests, debrief and optional retest

Overview

About web application and API security testing

Web applications and APIs hold most organisations’ customer data and most of their business logic. Our testing goes beyond automated scanners to check what a determined user or attacker can actually do: bypass a login, view another customer’s records, change a price, or call an API that was never meant to be called directly.

This is penetration testing focused on the application layer. If your servers and network also need testing, we can combine this with infrastructure penetration testing in one engagement. For white-box coverage, it pairs well with secure code review.

A typical starting point

You are launching or changing a customer-facing web app, portal or API and need it tested before attackers do.

The security problem

The application risks we test for

Automated scanners find surface issues. The most serious application flaws are in logic and access control, which need a human tester.
  1. Broken access control

    Users can see or change other customers’ data by changing an ID in a request, one of the most common and serious API flaws.

  2. Authentication and session weaknesses

    Weak login, password reset or session handling lets attackers take over accounts.

  3. Business logic abuse

    Workflows such as discounts, approvals or payments can be manipulated in ways no scanner understands.

  4. Injection and data exposure

    Untrusted input reaching databases or interpreters, and APIs returning more data than the screen shows.

See the security risks we see by industry

What’s covered

What we test in web applications and APIs

Every engagement is scoped to your application. These are the areas we examine, tested manually for each user role and supported by automated checks.

Area 01

Authentication and sessions

  • Login, multi-factor authentication, password reset and account recovery
  • Session handling, timeout and logout
  • JWT handling, and OAuth 2.0 and OpenID Connect flows

Area 02

Authorisation and access control

  • Horizontal and vertical privilege escalation
  • Insecure direct object references (IDOR) and broken object level authorisation (BOLA)
  • Tenant isolation in multi-tenant applications
  • Protection of administrative functions

Area 03

Input handling and injection

  • SQL and NoSQL injection, and command and template injection
  • Cross-site scripting (XSS) and client-side injection
  • Server-side request forgery (SSRF) and XML external entities
  • File upload handling and path traversal

Area 04

Business logic

  • Workflow bypasses and skipped steps
  • Price, quantity, coupon and credit manipulation
  • Race conditions and replayed requests
  • Abuse of rate limits and automation of sensitive actions

Area 05

API-specific risks

  • Broken object, property and function level authorisation
  • Mass assignment and excessive data exposure
  • Unrestricted resource consumption
  • Undocumented and legacy endpoints; GraphQL introspection and query depth

Area 06

Configuration and data protection

  • Security headers, CORS policy and TLS
  • Error handling and information leakage
  • Sensitive data in responses, URLs, logs and browser storage

What you receive

What you receive from a web or API test

Written so developers can reproduce and fix each issue without a follow-up call, though we are happy to have one.
  • Executive summary

    Overall risk, the most significant issues and recommended priorities, in plain language.

  • Technical findings

    Each issue with affected endpoints, CVSS severity, OWASP category, reproduction steps with HTTP requests and responses, impact and remediation guidance.

  • Coverage statement

    The roles, features, environments and API endpoints tested, and anything that was out of scope or not reachable.

  • Debrief with developers

    A working session to walk through findings, discuss fixes and answer questions.

  • Retest report

    If retesting is in scope, confirmation of which findings are resolved.

Sample finding

Finding 03 of 11HighCVSS 3.1 score 8.1

Customers can access and modify other customers’ invoices

api.example.com/api/v1/invoices/{id}

OWASP API Security Top 10 (2023): API1 Broken Object Level Authorization

What we found
Any signed-in customer can view and change other customers’ invoices by changing the invoice number in the request.
Evidence
As test customer A, we retrieved and then edited invoice 10482, which belongs to test customer B. Requests, responses and screenshots attached.
Business impact
Every customer’s billing records can be exposed or altered, with likely notification duties under the DPDP Act.
Fix
Check invoice ownership on the server using the customer ID from the session, not the request. Add automated cross-account tests.
Status
OpenFixed, verified at retest
Illustrative example of our report format. It is not taken from a client engagement.

Good to know

Security testing is not QA testing

Quality assurance (QA) testing checks that your application does what it is supposed to do. Security testing checks what it can be made to do that it shouldn’t. The two need different skills, tools and mindsets.

Cenvox provides application security testing. We do not provide functional, regression or performance QA testing.

Good to know

A DAST scan is not a penetration test

Dynamic application security testing (DAST) tools are good at finding known patterns such as missing headers or reflected XSS. They cannot understand your business rules, so they rarely find authorisation flaws or logic abuse, which are among the most damaging issues in modern applications.

Before we start

What we need to test your application

Good preparation means more testing time is spent on your application, not on access problems.
  • A stable test environment, ideally a staging environment that mirrors production, or agreed testing windows in production.
  • Test accounts for each user role, ideally two per role so cross-account access can be tested.
  • API documentation, such as an OpenAPI (Swagger) specification, Postman collection or sample requests.
  • A decision on web application firewall and rate limiting: allow-list our testing IP addresses if you want the application tested rather than the firewall.
  • A contact who can reset test data and accounts during testing.

How we scope, authorise and report every engagement

Not sure you have everything?

We confirm exactly what web application and API testing needs from your side during the scoping call, before any work is agreed.

Book a scoping call

FAQ

Questions about web application and API testing

Straight answers to what organisations ask before they start.

Still have a question?

Ask about scope, timing or cost for web application and API testing, even if you are not ready to commission work yet.

Contact our team

Should we test in staging or in production?

Staging is usually better, as long as it closely mirrors production. Testing can then include actions that create, change or delete data without affecting real customers. If staging differs significantly from production, we can test production carefully within agreed windows and limits.

Do you need our source code?

No. Most application tests are grey-box: we use the application as your users would, with test accounts. Access to source code allows a deeper white-box assessment, which we offer as secure code review.

How do you test an API that has no user interface?

We work directly with the API using its documentation or a Postman collection, sending crafted requests to each endpoint with different roles and inputs. If no documentation exists, we can map the API from the traffic of the web or mobile app that uses it.

Will testing affect our real users or data?

Not if testing is carried out in staging. In production we use dedicated test accounts, avoid destructive actions unless agreed, and do not run denial-of-service tests. Any finding that exposes real customer data is reported to you immediately rather than waiting for the report.

Can you test an application that sits behind a WAF?

Yes. We can test with the web application firewall in place, which shows what an outside attacker would face, or with our addresses allow-listed so the application’s own security is tested. Many organisations choose the second option, because a WAF can be bypassed or misconfigured later.

How often should applications be tested?

At least annually, and after major releases or changes to authentication, payments or data access. Fast-moving products often test their highest-risk features each quarter.

Talk to us about web and API security

Tell us what has prompted the conversation. We will reply to arrange a short, no-obligation scoping call for web application and API testing.