HomeServicesWeb Application Penetration Testing

Web Application Penetration Testing, From the Source Code Up

A web application test should answer one question: what could an attacker do with your application, its logins and its APIs? We answer it from the source code up. You give us the code under NDA, we build and run it in an isolated NetSys sandbox with no path to production, and engineers review the code and attack the running build. This is the Tier 2 engagement that sits behind our free external network test.

See the Free External Test
By The NetSys Group · Published · Editorial policy

The short answer

Web application penetration testing is an authorized attack on your application, its logins and its APIs to prove which flaws an attacker could use. NetSys tests from the source code up: we build your application in an isolated sandbox under NDA, review the code, attack the running build, write up each finding with the fix, and retest after you patch.

Closest related page: Penetration testing services and the free external test. That page covers the free Tier 1 external network test and how the two tiers compare; this one covers the Tier 2 test of your application's code and running build.

Who a web application penetration test is for

Businesses that build or run their own software: a customer portal, a SaaS product, an internal tool that holds client data, or the API behind a mobile app. The trigger is usually a customer's security questionnaire, a SOC 2 or PCI DSS assessment, an investor's due diligence, or a major release nobody has tested from an attacker's side.

The free external test cannot answer that question, because it stops at what your business exposes to the internet. Application flaws sit behind the login: one customer reading another's records, a form that passes input straight to the database, an API that skips a permission check. Finding those takes the code, a running build and an engineer's time, which is why this test is scoped and quoted per application.

Read the Code, Then Attack the Running Build

A short technical call sets the scope: the application, its user roles, its APIs, the languages and frameworks, and how it is built and deployed. You then give us the code under a signed NDA, as a repository grant or an archive, and we build and run it in an isolated NetSys sandbox that has no connection to your production systems, customers or data. Engineers review the code for the flaws that matter, attack the running application and its APIs, and scan dependencies, committed secrets and configuration. Each finding is written up with its severity, reproduction steps and the specific fix, and we retest once you have patched. When the engagement closes, the code and the sandbox are deleted.

What a web application penetration test covers

Code review for injection, broken authentication and business-logic flaws

Reading the code finds what testing from outside can miss.

  • Injection: input that reaches a database query, a command or a page without being handled safely
  • Broken authentication and authorization: sign-in, session and permission checks a user can get around
  • Business-logic flaws: features used in an order or a way the application never expected
  • Insecure deserialization and other places the application trusts data it should check

Testing the running app and its APIs

The build in our sandbox, attacked the way a user or an attacker would reach it.

  • The application's pages, forms and logins, exercised in the running build
  • The APIs behind the application, called directly rather than only through the screens
  • Findings from the code review confirmed against the running build, so each one is shown to work rather than assumed
  • No traffic to your production systems: the test runs entirely inside our sandbox

Dependencies, secrets and configuration

The supply-chain paths attackers use.

  • Third-party libraries checked for known vulnerabilities, and for components nobody maintains any more
  • Secrets committed to the repository, such as passwords, API keys and tokens left in code
  • Configuration checked for what OWASP lists under misconfiguration: unchanged default accounts, error messages that reveal stack traces and missing security headers
  • Each finding tied to the file or component it lives in, so developers can fix it at the source

Findings, fixes and a retest

A report your developers can act on, then proof the fixes hold.

  • Findings ranked by real-world risk, each with severity, evidence and reproduction steps
  • The specific fix for each finding, written for the developers who will make it
  • A retest after you patch, with the result recorded against each finding
  • Code and sandbox deleted when the engagement closes; the findings go to you and nobody else
Why NetSys

Why software teams choose NetSys for application testing

Tell us what the application does, the languages and frameworks it uses, how many user roles and APIs it has, and what prompted the test. A NetSys engineer will tell you whether we can build and run it in our sandbox and what the scope would cover. Call 845-203-3914 or request a scoping call.

Who does the work: meet the NetSys team on our About page.

  • Your code never leaves the sandbox: NDA, isolated infrastructure, no production access, deleted at close
  • Engineers read the code and attack the running build, so you get demonstrated findings rather than a scanner export with a logo on it
  • Every finding comes with reproduction steps and the specific fix, then a retest
  • Scoped on a short technical call and quoted per application, with no rate card
  • If we cannot build and run your platform, we say so on the scoping call rather than fake a test
  • A firm defending business networks since 1998, from one office in Brooklyn

Black box, grey box or white box: why we test from source

Testers describe access in three levels. The more the tester can see, the more the test can prove:

LevelWhat the tester getsWhat it can miss
Black boxNo information: the application as an outsider sees itAnything behind the login, and code paths a tester cannot reach from outside
Grey boxCredentials and documentation, with partial knowledge of how the application worksFlaws in code the tester never triggers, and logic only the source explains
White boxThe source code and the architecture, plus a running buildThe least: the code shows what the application does, though design flaws still need a person reading it

Our Tier 2 test is white box: we build the application from your source and test both the code and the running build. The OWASP Web Security Testing Guide notes that source code review finds vulnerabilities a black-box test would miss, naming flawed business logic, access control problems and cryptographic weaknesses among them.

How the test maps to the OWASP Top 10:2025

The OWASP Top 10 is a consensus list of the most critical security risks to web applications, and 2025 is the current edition. The risks our test looks for, and where:

OWASP riskWhat it meansWhere our test looks for it
A01 Broken Access ControlUsers acting outside their permissions, such as opening another customer's account or calling an API without the right roleCode review of permission checks, then requests in the running build that try to cross them
A02 Security MisconfigurationMissing hardening or insecure settings anywhere in the application stackConfiguration scanning and review of the build's settings
A03 Software Supply Chain FailuresVulnerable, unmaintained or compromised third-party componentsDependency scanning of the libraries the application uses
A05 InjectionUntrusted input run as a command by a database, browser or shell, including SQL injection and cross-site scriptingCode review of input paths, then injection attempts against the running build
A06 Insecure DesignDesign and business-logic flaws that a perfect implementation would not fixReading how features are meant to work, then using them in ways the design did not expect
A07 Authentication FailuresWeak sign-in and session handling, and credentials hard-coded into the applicationReview of the sign-in and session code, and secret scanning for credentials left in the repository
A08 Software or Data Integrity FailuresTrusting code or data without checking it, including insecure deserializationCode review of where the application accepts serialized data or updates

The table covers the risks our Tier 2 scope names. Ask on the scoping call how A04 Cryptographic Failures, A09 Security Logging and Alerting Failures and A10 Mishandling of Exceptional Conditions would be handled for your application; any quote should say which categories it covers.

How a sandboxed application test runs

Every Tier 2 engagement follows the same order, from the scoping call to deleting the code:

  • Scoping call: the application, its user roles, APIs, languages and frameworks, and how it is built, agreed in writing
  • NDA and handover: you grant repository access or send an archive, under a signed NDA
  • Isolated build: we build and run the application in a NetSys sandbox with no path to your production systems, customers or data
  • Static review: engineers read the code for injection, authentication and authorization flaws, insecure deserialization and business-logic weaknesses
  • Dynamic testing: the running build and its APIs are attacked, and dependencies, secrets and configuration are scanned
  • Report: each finding with severity, evidence, reproduction steps and the specific fix
  • Retest: once you have patched, we test the fixes and record the result
  • Close: the code and the sandbox are deleted, and the findings stay with you

Because the test never touches production, it needs no change window and cannot take your live application down.

What the findings report contains

An illustration of one finding, written for this page. It is not a finding from a client report:

FieldWhat it tells youIllustrative example
FindingWhat was found, in one lineA customer can open another customer's invoices by changing the number in the address
SeverityHow urgent it is, ranked by real-world riskHigh
EvidenceWhat the test observed, so your developers can check itIn the sandbox build, a request for invoice 1042 made as customer A returned customer B's invoice
Where it livesThe file or component that causes itThe invoice endpoint checks that the user is signed in, not that the invoice belongs to them
FixThe specific change that closes itCheck on the server that the record belongs to the user before returning it
RetestWhether the fix was confirmedTested again after the patch, with the result recorded here

Every report also states what was in scope, which build was tested and what was not tested, so nobody reads more into it than the test supports.

How web application testing is priced

We publish no rate card. A web application test is quoted per application after a short technical call, and these inputs move the number:

FactorWhy it moves the price
Application sizeMore pages, features and code mean more to review and attack
User rolesEach role is another set of permissions to check
API endpointsEach endpoint is tested directly, not only through the screens
Languages and frameworksEach stack in the codebase needs its own review
Build reconstructionHow much of the build we have to recreate before the application runs in the sandbox

Comparing quotes? What a penetration test costs, and how to compare quotes.

The quote names the scope, the deliverables and the retest before any work starts.

Common Questions

Web Application Penetration Testing FAQs

What is web application penetration testing?

Web application penetration testing is an authorized, controlled attack on an application, its logins and its APIs to prove which flaws an attacker could actually use. It goes further than a scan: an engineer chains weaknesses together and shows what they reach. NetSys tests from the source code up, reviewing the code and attacking a running build in our sandbox, then retesting after you fix.

Do you test our live site or a copy?

A copy. We build the application from your source in an isolated NetSys sandbox and attack that build, so the test never touches your production systems, customers or data, and it needs no change window. If a customer or auditor asks specifically for a test of the deployed application, tell us on the scoping call and we will say what our sandboxed test can and cannot show.

Which languages and frameworks can you test?

Any codebase we can build and run: web applications, APIs, mobile backends, integrations and internal tools across the common stacks. If your platform is unusual, the scoping call is where we say so, because we would rather decline a test than fake one. Bring the repository structure and the deployment model to that call.

Is our source code safe with you?

You provide the code under a signed NDA, as a repository grant or an archive. We build and run it in an isolated NetSys sandbox with no connection to your production systems, customers or data, and the code never leaves that sandbox. When the engagement closes, the code and the sandbox are deleted, and the findings go to you and nobody else.

Will the report satisfy SOC 2 or a customer security questionnaire?

It can support either, but acceptance is the auditor's or the customer's decision. The report states the scope, the build tested, what was not tested, each finding with reproduction steps and the fix, and the retest result. Before you commission the test, ask the auditor or customer what scope and evidence they need, and bring that to the scoping call so the scope matches.

How is this different from the free external test?

The free Tier 1 test looks at your business from the internet: the domains, public systems, remote access and logins you expose, within an agreed scope and with no credentials. This Tier 2 test looks inside one application: its code, its running build and its APIs, in our sandbox. Start with the free test, and add application testing for the software you build or run.

Do you retest after we fix the findings?

Yes. A retest is part of the engagement: once you have patched, we test each reported finding again and record whether the fix holds. Ask about the retest window on the scoping call, so its timing fits your release plan.

Does PCI DSS require application penetration testing?

For applications in a cardholder data environment, yes. PCI DSS v4.0.1 requirement 11.4 calls for a documented penetration testing method that includes application-layer testing for, at a minimum, the attacks listed in requirement 6.2.4, with internal and external tests at least once every 12 months and after significant changes, and testing repeated to confirm fixes. Your SAQ type and your assessor decide what applies.

Web application penetration testing

Bring the application and the question you need answered.

Tell us what the application does, its stack, its user roles and APIs, and who is asking for the test. We will confirm whether we can build it in our sandbox, agree the scope in writing and quote it before any work starts.