Java and Spring Boot Penetration Testing
Spring Boot services, legacy JSP and Struts applications, and everything in between. We test the actuator endpoints, the serialisation paths and the security matchers that decide who reaches what. CREST-certified testers, fixed price from £3,480, scoped in 24 hours.
- Unlimited retesting
- No rescheduling or cancellation fees
- Fixed quote within 24 hours
“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.”
“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.”
Java applications get attacked through the plumbing. A string that reaches a logger, an object that reaches a deserialiser, an expression that reaches the template engine. Log4Shell was the clearest example the industry has had, and the pattern did not go away when that CVE was patched: the risk is any path where untrusted data meets a component that will evaluate it.
In Java, the dangerous input is rarely the one in the form field
Spring adds a second pattern worth testing on its own. Security is declared, not written, so the flaw is usually in the declaration: a matcher in the wrong order, a permitAll that covers more than it should, a method that never got its annotation, or CSRF switched off during an API migration and never switched back.
Then there is the estate around the application. Actuator endpoints exposed to the network, a heap dump that contains live credentials, a Tomcat manager on a neighbouring port, and the Struts application nobody has touched for years but which still answers requests.
ISO 27001, SOC 2, PCI DSS and Cyber Essentials Plus audits accept manual penetration test evidence. Scan-only evidence is generally insufficient.
JAVA SPECIFICS
What We Actually Test in a Java Application
Ten test areas that apply because the application is Java and Spring, on top of the standard application checks. Every finding is verified, reproducible and mapped to OWASP, CWE and CVSS 3.1.
Actuator and management endpoints
Which actuator endpoints are reachable and from where, what env, mappings and heapdump disclose, and whether anything writable is exposed.
Deserialisation
Endpoints that accept serialised Java objects, Jackson polymorphic typing, XStream and similar, tested with known gadget chains rather than a signature match.
Spring Security configuration
Matcher order, permitAll scope, missing method-level annotations, CSRF settings on state-changing endpoints, and what a low-privileged token reaches.
Expression language injection
SpEL evaluation reached from request data, and OGNL in legacy Struts applications, the class of flaw behind Spring4Shell.
Logging paths
Whether user-controlled data reaches a logger that performs lookups, and what version of the logging stack is actually deployed rather than declared.
JPA, Hibernate and raw queries
HQL and JPQL built by concatenation, native queries, and sort or filter parameters that become part of the statement.
Application server and container
Tomcat, JBoss and WebLogic management interfaces, default credentials, AJP exposure, and session handling at the container level.
Tokens and sessions
Algorithm confusion and unvalidated key identifiers in JWT, token lifetime, revocation on logout, and session fixation.
XML and SOAP
Entity expansion and external entities in every parser the application uses, and server-side request forgery reached through XML.
Legacy JSP and Struts
Tag library escaping, path traversal in older action mappings, and the endpoints left behind by a partial migration.
METHODOLOGY
What a Java and Spring 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.
Data binding on a Spring MVC controller reaches the class loader and gives remote code execution
- Affected
- A registration endpoint at [redacted], Spring MVC on Apache Tomcat, JDK 17, running as the tomcat user.
- What we found
- The controller bound request parameters directly onto a persistent entity. Walking a parameter name through the object graph let us rewrite the container access log configuration to a path and suffix of our choosing, which produced a working web shell on the next request.
- Why it matters
- Unauthenticated remote code execution as the container user, which held the database credentials in a properties file on the same host.
- Fix
- Upgrade the Spring Framework, bind to a dedicated request DTO instead of an entity, set an explicit disallowed field list on the binder, and run the container as a user with no write access to its own configuration directory.
Reconstructed from public research: CVE-2022-22965, known as Spring4Shell, remote code execution via data binding, CVSS 3.1 base score 9.8.
Java 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.
Reconnaissance
Application mapping, technology fingerprinting, content discovery, parameter enumeration, authentication-flow analysis, role-matrix construction.
Vulnerability Assessment
Authenticated and unauthenticated automated scanning across every user role, plus targeted manual checks for known weakness patterns.
Manual Exploitation
Hands-on testing by a CREST-certified pentester. Business-logic exploitation, chained vulnerabilities, privilege escalation, impact validation.
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 Java 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,480 for a small, single-scope engagement, agreed up front. Most engagements run £5,140 and up. No day-rate surprises.
Under NDA Further named references available on a scoping call.
- We reply within one business day with a fixed-price quote from a named CREST assessor.
- You approve the scope and we book a start date, usually within 24 hours.
- Live findings land in your client portal as we test, with a free retest of every fix.
Get your fixed pen test quote in 24 hours
Quote request received
We will reply within one business day with your fixed-price quote from a named CREST assessor.
Your data stays with us. No newsletter signup.
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 Java 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.
3 to 4 days
Single user role, basic CRUD application, marketing website with auth. Typically 5-day engagement.
Get a fixed quote4 to 6 days
Multi-role SaaS, business application with payment integration. Typically 8-12 day engagement.
Get a fixed quote6 to 9 days
Multi-tenant platform, complex authorisation matrix, integration-heavy applications. 15-20 day engagement.
Get a fixed quotePart 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:
BY SECTOR
Java Penetration Testing for Your Sector
Sector-specialist scoping for UK businesses with sector-specific compliance regimes and threat models.
Fintech & FCA-Regulated
FCA SYSC, Open Banking FAPI 1.0, PSD2 SCA, payment-flow scrutiny, KYC/AML testing.
Fintech sector pageSaaS Companies
SOC 2 Type I & II evidence, multi-tenant boundaries, role escalation, customer-tenant isolation.
SaaS sector pageLaw Firms
SRA Cyber Standard, privileged data, conveyancing fraud defence, partner-tier procurement.
Law firm sector pageHealthcare
NHS DTAC, DSP Toolkit v6, UK GDPR Article 32, EHR systems, telehealth platforms.
Healthcare sector pageInsurance
FCA / PRA Operational Resilience, cyber underwriting, claims data, broker portals.
Insurance sector pagePublic Sector
CCS / G-Cloud framework, NCSC-aligned, citizen-facing services, PSN-compliance scrutiny.
Public sector pageWHY EJN LABS
What You Get From Java 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 microservices or just the front door?
Both, if both are in scope. Service-to-service calls are where authorisation is most often assumed rather than enforced, so we ask for at least one internal service in the scope.
Can you test a Spring Boot API without a user interface?
Yes. That is an API test with the Java-specific checks from this page applied.
Our stack still has Struts. Is that a problem?
It is a reason to test sooner. Older Struts versions carry expression language flaws that are trivially exploitable, and they are usually reachable from the internet.
Do you need a heap dump or source code?
No. If an actuator endpoint hands us one during the test, that is a finding in itself.
How do you handle rate limiting on our gateway?
We agree an allowlist so the test measures the service rather than the gateway, then note what the gateway caught separately.
Java or Kotlin, does it matter?
Not to the test. The frameworks, the serialisers and the security configuration behave the same way underneath.
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.
20+ CREST-accredited testing services in one place
Web, mobile, API, cloud, AI, infrastructure, red team. Pick the test that fits your environment.
Get your Java service tested properly
Send us the service list and the roles. You will have a fixed scope and a number within 24 hours.



