.NET and C# Penetration Testing

.NET Penetration Testing for ASP.NET, Blazor and Windows Estates

We test ASP.NET Core, MVC, Web Forms and Blazor applications the way an attacker with a Windows background would: ViewState and serialisers first, then the authorisation attributes, then IIS itself. CREST-certified testers, fixed price from £3,240, scoped in 24 hours.

  • Unlimited retesting
  • No rescheduling or cancellation fees
  • Fixed quote within 24 hours
Accredited & recognised
Cyber Essentials certified Cyber Essentials Plus certified IASME certifying body ISO 27001 certified ISO 9001 certified Crown Commercial Service supplier UK Cyber Security Council member
CREST Member
Verified accreditation
10
.NET-specific test areas
FREE Retest
Until the finding is closed
24h
Scope to active testing
CLIENT REFERENCE
“I would highly recommend EJN Labs to any organisation seeking reliable, detailed, and well-managed penetration testing services, particularly for government or enterprise-level projects.”
SquareOneImran SaghirProject Lead, SquareOne
CLIENT REFERENCE
“There wasn’t another company we could find that could deliver what we needed in the timeframe we needed. The client loved it, and we got instant ROI from the engagement.”
CelloriDan WilcocksonCo-Founder, Cellori
WHY IT MATTERS
8.8

An automated scan of an ASP.NET application finds the missing headers and the obvious injection. It does not know what ViewState is, whether MAC validation is on, or whether the machine key in the config was copied from a template five years ago. Those are the findings that end up on the front page of the report.

A scanner reads your .NET app as HTML. We read it as .NET.

The same is true of authorisation. In .NET, access control lives in attributes, filters and inheritance rules, so the flaw is usually a controller that forgot its Authorize attribute, an AllowAnonymous that cascades further than the developer thought, or a role check performed in the UI and nowhere else. We test every endpoint against every role, not the ones the navigation shows us.

Then we look at the platform, because a .NET application is rarely alone. IIS, the app pool identity, the service account, the connection strings in web.config and the Windows authentication path are all part of the attack surface, and they are where a contained web bug becomes a domain problem.

ISO 27001, SOC 2, PCI DSS and Cyber Essentials Plus audits accept manual penetration test evidence. Scan-only evidence is generally insufficient.

.NET SPECIFICS

What We Actually Test in a .NET Application

Ten test areas that apply because the application is .NET, on top of the standard application checks. Every finding is verified, reproducible and mapped to OWASP, CWE and CVSS 3.1.

NET-01

ViewState and machine keys

Whether ViewState is signed and encrypted, whether MAC validation is enabled, and whether the machine key is unique to the environment. A leaked or default key turns a form field into remote code execution.

NET-02

Unsafe serialisers

BinaryFormatter, LosFormatter, NetDataContractSerializer and JSON.NET with type name handling set wide open. We test the endpoints that accept serialised objects with known gadget chains.

NET-03

Authorisation attributes

Controllers and actions missing the Authorize attribute, AllowAnonymous inherited further than intended, role checks only in the view, and object identifiers that are not tied to the caller.

NET-04

Entity Framework and raw SQL

FromSqlRaw with interpolated strings, dynamic LINQ, stored procedures built by concatenation, and sort or filter parameters that reach the database untouched.

NET-05

Razor and Blazor rendering

Html.Raw, MarkupString in Blazor, and Blazor Server circuits where the authorisation decision is made on the client side of the connection.

NET-06

Windows authentication and NTLM

Relay paths into the application, delegation settings on the app pool identity, and what the service account can reach once it is borrowed.

NET-07

IIS configuration

Path normalisation and short file name enumeration, directory browsing, request filtering, and diagnostic handlers such as trace.axd and elmah.axd left reachable.

NET-08

Secrets and configuration

Connection strings and keys in web.config and appsettings.json, files served from the web root, key material reused between staging and production, and what error pages disclose.

NET-09

Legacy Web Forms and WCF

Event validation, .asmx and WCF endpoints, SOAP method enumeration, and the old pages nobody removed when the rewrite shipped.

NET-10

File handling and uploads

Server.MapPath juggling, virtual path traversal, MIME checks that trust the client, and uploads that land in a folder IIS is willing to execute.

METHODOLOGY

SAMPLE FINDING

What a .NET finding looks like

Written the way a finding appears in our reports. The example below is reconstructed from publicly documented research, with hosts, paths and identifiers redacted. We do not republish client findings, named or anonymised.

CriticalCVSS 8.8 · CWE-502 · Illustrative example

Static ASP.NET machine key allows ViewState deserialisation to remote code execution

Affected
The web front end of an internet facing Exchange deployment at [redacted], control panel path under /ecp/.
What we found
The application used the default, publicly known validation key, so we could sign our own __VIEWSTATE value. A signed payload carrying a serialised object was accepted and deserialised by the server, and our command ran as the application pool identity.
Why it matters
Remote code execution on the mail server from an account with no administrative rights, on a host that also held the mailbox database and the service account used by four other systems.
Fix
Apply the vendor update, then generate a unique machineKey per server and keep it out of source control. Where ViewState is genuinely needed, enable MAC validation and ViewState encryption, and restrict deserialisation to an allow list of types.

Reconstructed from public research: CVE-2020-0688, Microsoft Exchange validation key remote code execution, CVSS 3.1 base score 8.8 on the NVD record.

.NET Penetration Testing: From Scope to Attestation

CREST-aligned methodology built on OWASP Web Security Testing Guide, OWASP ASVS, NIST SP 800-115, and PTES. Each finding maps to all four standards plus your specific compliance regime.

01

Reconnaissance

Application mapping, technology fingerprinting, content discovery, parameter enumeration, authentication-flow analysis, role-matrix construction.

02

Vulnerability Assessment

Authenticated and unauthenticated automated scanning across every user role, plus targeted manual checks for known weakness patterns.

03

Manual Exploitation

Hands-on testing by a CREST-certified pentester. Business-logic exploitation, chained vulnerabilities, privilege escalation, impact validation.

04

Reporting + Retest

Executive summary, technical report with CVSS scores and reproduction steps, walkthrough call, free retest after remediation, attestation letter.

CREDENTIALS

Verified Accreditations Auditors Accept

Every credential below is independently verifiable. UK procurement teams, FCA supervisors, ISO 27001 / SOC 2 auditors, and cyber insurance underwriters all recognise these standards.

GET YOUR QUOTE

Get a CREST .NET application pen test quote in 24 hours

A fixed-price quote back in one business day, from a named CREST assessor. No sales pipeline, no chasing.

  • CREST and IASME accredited. Testing your auditors and clients already recognise.
  • Fast-track testing within 24 hours where required. Free retest of every fix included.
  • Live findings via your client portal, not a four-week PDF.
  • Fixed price from £3,240 for a small, single-scope engagement, agreed up front. Most engagements run £4,870 and up. No day-rate surprises.
What clients say
There wasn’t another company we could find that could deliver what we needed in the timeframe we needed. The client loved it, and we got instant ROI from the engagement.
CelloriDan WilcocksonCo-Founder, Cellori

Under NDA Further named references available on a scoping call.

What happens next
  1. We reply within one business day with a fixed-price quote from a named CREST assessor.
  2. You approve the scope and we book a start date, usually within 24 hours.
  3. Live findings land in your client portal as we test, with a free retest of every fix.
Accredited & recognised
CREST member Cyber Essentials certified Cyber Essentials Plus certified IASME certifying body ISO 27001 certified ISO 9001 certified UK Cyber Security Council Crown Commercial Service supplier

Get your fixed pen test quote in 24 hours

24h reply CREST tester Free retests

or book a 20-min scoping call first

We reply within one business day. Your data stays with us. No newsletter signup.

COMPLIANCE READY

Reports Mapped to Every Framework

Findings are explicitly tagged to the relevant control reference. Your audit team submits the report directly without translation work.

ISO 27001:2022

Annex A.8.8 management of technical vulnerabilities plus A.5.15-5.18 and A.8.2-8.5 access control validation.

SOC 2 Type I & II

CC6 logical access, CC7 system operations, CC8 change management evidence.

PCI DSS

Requirement 11.4 application penetration testing across cardholder data environments, including ecommerce penetration testing for online retail platforms.

FCA SYSC

SYSC 4.1.1R, 6.1.1R, 13 mapped to each finding for FCA-regulated firms.

UK GDPR

Article 32 effectiveness testing, customer-data security controls, ICO-acceptable evidence.

Cyber Essentials Plus

Direct certification through our IASME body status, single-vendor delivery.

PRICING

Transparent .NET Penetration Testing Pricing

Pricing depends on app complexity, user-role count, business-logic depth, and integration surface. The day count flexes; the included deliverables stay the same across all engagements.

✦ ALWAYS · ON EVERY TIER · NO EXCEPTIONS ✦
Free retests, no time limit
Free rescheduling
No cancellation fees
24-hour scope to active testing
Live findings to client portal
Executive + technical report
60-min walkthrough call
Letter of attestation
SMALL / SMB
£3,240–£4,870
3 to 4 days

Single user role, basic CRUD application, marketing website with auth. Typically 5-day engagement.

Get a fixed quote
ENTERPRISE
£7,650–£10,650
6 to 8 days

Multi-tenant platform, complex authorisation matrix, integration-heavy applications. 15-20 day engagement.

Get a fixed quote

Part of Technologies We Pen Test. These are examples of the stacks we publish pages for, not a complete list. If yours is not here we still test it. Related pages:

Full UK pen test cost guide

WHY EJN LABS

What You Get From .NET Penetration Testing

Six concrete differentiators competitors don’t all match.

CREST-Certified Testers, Verifiable

Every test by a CREST-certified pen tester (CRT, CCT APP, CCT INF where applicable). Verify our company status at crest-approved.org.

24-Hour Startup, Where Required

From signed scope to active testing in a single business day for incident response, audit deadlines, or regulator-driven timelines.

Live Findings, Not 4-Week PDFs

Critical issues reported during testing through your client portal. Your team remediates while testing continues.

Audit-Ready Reports

Executive summary plus full technical report with CVSS scores and explicit framework mappings (ISO 27001, SOC 2, PCI DSS, FCA SYSC).

Free Retests, Standard

Verify remediation of every finding before close-out. Letter of attestation for audit submission included. Most competitors charge £1,500-£3,000 per retest.

UK-Based CREST Testers

Every engagement performed by vetted, UK-based CREST-certified testers, matched to your needs, security clearance, and compliance scope.

FAQ

Frequently Asked

Do you test .NET Framework as well as .NET Core?

Yes. Web Forms and MVC on the old framework, and .NET Core through to the current release. The older the runtime, the more of the test goes into serialisation and ViewState.

Can you test Blazor applications?

Yes, both hosting models. Blazor Server needs particular attention because the component state lives on the server behind a live connection, and authorisation decisions made in the component can be driven from the client.

Do you need the source code?

No. If you have it, a secure code review finds different things and the two combine well.

Will you test the Windows infrastructure behind the app?

Only if it is in scope. Many clients add the internal network test, because the app pool identity is usually the shortest route into the domain.

Our app is behind a WAF. Does that change anything?

It changes the noise, not the findings. We ask for an allowlist so the test measures the application rather than the WAF, and we note separately what the WAF caught.

How long does a .NET test take?

Most single applications are five to ten days of testing depending on roles and integrations. The scope document says exactly how many days before you sign anything.

What is included in the price?

Scoping, testing, the executive summary, the technical report, a walkthrough call and free retests until the finding is closed. One scope, one number, no follow-up invoices.

How fast can you start?

Scope to active testing in 24 hours once the scope is agreed, subject to tester availability in your window.

Are your testers CREST certified?

Yes. EJN Labs is a CREST member company and testing is delivered by CREST-qualified testers. The membership is verifiable on the CREST marketplace.

EXPLORE EVERY SERVICE

20+ CREST-accredited testing services in one place

Web, mobile, API, cloud, AI, infrastructure, red team. Pick the test that fits your environment.

Penetration testing services
READY TO START

Get your .NET application tested properly

Send us the stack and the roles. You will have a fixed scope and a number within 24 hours.