Skip to content
Services / Penetration testing

Penetration testing that your auditor, your board and your engineers can all read.

Manual, scoped testing against your web applications, APIs, cloud estate and internal network — delivered with the evidence needed to close a SOC 2 control and the detail needed to actually fix the issue.

Typical duration
8–12 days
Lead time
2–3 weeks
Deliverables
Report, attestation letter, retest
Standards
OWASP ASVS 4.0, PTES
Request scoping
Coverage / 01

What we test

Authentication & session

Credential handling, MFA bypass, session fixation, token rotation

Authorisation

Horizontal and vertical privilege escalation, IDOR, tenant isolation

Business logic

Workflow abuse, race conditions, pricing and quota manipulation

Input handling

Injection, deserialisation, file upload, SSRF

Evidence / 02

How a finding is written

Critical9.1HXK-014

Broken access control on /api/v1/users

Any authenticated user can read another tenant's user records by substituting the account identifier. No authorisation check is performed against the requesting session.

Reproduction
1GET /api/v1/users/42 HTTP/1.1
2Host: api.acme.io
3Authorization: Bearer eyJhbGciOi…
4
5HTTP/1.1 200 OK
6{"id":42,"email":"cfo@othertenant.com"}
Remediation

Enforce tenant scope in the data access layer rather than the controller, and add a regression test asserting a 403 for cross-tenant identifiers.

Engagement / 03

Five stages, no surprises

01
Scoping

A 30-minute call and a short worksheet. You get a fixed price and dates.

02
Reconnaissance

Estate mapping, credential provisioning, threat modelling against your architecture.

03
Testing

Manual testing by a named engineer. Criticals are reported the day we find them.

04
Reporting

Findings, evidence, remediation guidance, and an executive summary that is actually one page.

05
Retest

90 days to remediate. We re-verify and reissue the report and attestation letter.

On scanners
Automated scanning is part of reconnaissance, not the deliverable. If a scan is all you need, we will tell you on the scoping call and point you at a tool.