Skip to content

Sample Report

Sample penetration testing report: see it before you scope

Every Invadel engagement ends with a report your engineers can act on and your board can understand. Read an excerpt for a fictional client below, no form needed. Want a real one? Request a redacted report from a past engagement.

What's inside

Every report, four deliverables

Executive summary

A plain-language view of your risk posture, written for stakeholders with no security background.

Technical findings

Detailed vulnerability write-ups with reproduction steps, affected assets, and evidence.

Risk ratings

Every finding scored and prioritized so your team fixes what matters most first.

Remediation guidance

Actionable, developer-ready recommendations your engineers can follow to close every finding.

See how findings are scored in our methodology 

One report, three readers

Written for everyone who has to act on it

For your engineers

Reproduction steps and evidence detailed enough to start fixing the same day.

For your leadership

An executive summary your board understands without a security background.

For your auditors

Findings formatted as evidence your assessor or customer reviewer can accept.

Fictional example

What an Invadel report looks like

An excerpt from a web application and API report for Example Corp, a company that does not exist. The structure and level of detail are the ones we deliver. Building your own? Start from our penetration testing report template.

Sample

Example Corp is fictional. Every host, account and finding below is invented to show the format. No client data appears on this page.

Invadel · Penetration Test Report

Example Corp: Customer Portal and API

Client
Example Corp (fictional)
Testing firm
Invadel LLC
Engagement
Web application and API penetration test
Testing window
March 2 to March 6, 2026
Report version
1.1, retest results added
Issued
April 16, 2026

Contents

  1. 1Cover and document controlBelow
  2. 2Executive summaryBelow
  3. 3Scope and rules of engagement
  4. 4Methodology and standards
  5. 5Summary of findingsBelow
  6. 6Detailed findings (F-01 shown)Below
  7. 7Attack narrative
  8. 8Remediation roadmap
  9. 9Retest resultsBelow
  10. 10Appendices, with the attestation letterBelow

2Executive summary

Between March 2 and March 6, 2026, Invadel tested Example Corp’s customer portal (portal.example.com) and its REST API (api.example.com). Testers worked as an outside attacker with no account and as each of the three customer roles Example Corp provided. The goal was to find any way one customer could see or change another customer’s billing data.

Overall risk at the time of testing: High. The most serious issue let any logged-in customer read other customers’ invoices by changing one number in a request (F-01).

Status at reissue: the high and medium findings were fixed and verified in the retest on April 14, 2026. One low finding is scheduled for a later release.

0

Critical

1

High

2

Medium

2

Low

1

Info

What held up

  • Admin area: no admin route was reachable from a customer role.
  • File uploads: type and size checks are enforced on the server.
  • Roles: customers could not raise their own role or invite admins.

Fix first

  1. 1Add an ownership check to every API route that takes an object ID (F-01).
  2. 2Make password reset links single-use and short-lived (F-02).
  3. 3Rate-limit failed logins per account and per IP address (F-03).

5Summary of findings

F-01High

Broken object-level authorization on the invoices API

api.example.com · Fixed, verified

F-02Medium

Password reset link can be used more than once

portal.example.com · Fixed, verified

F-03Medium

No rate limiting on the login endpoint

api.example.com · Fixed, verified

F-04Low

Session cookie set without the Secure attribute

portal.example.com · Fixed, verified

F-05Low

Sessions stay active after a password change

portal.example.com · Open, fix scheduled

F-06Info

Content Security Policy allows inline scripts

portal.example.com · Noted

6Detailed findings

F-01

Broken object-level authorization on the invoices API

Severity
High CVSS 7.1
Status
Fixed, verified on retest
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
Affected
GET /api/v2/invoices/{id} and PATCH /api/v2/invoices/{id}/notes on api.example.com

Description

The invoices API returns any invoice by its numeric ID without checking that the invoice belongs to the caller’s organization. IDs are sequential, so every invoice can be reached by counting. The notes endpoint on the same resource is missing the same check.

Impact

Any customer with a login can read every other customer’s invoices, including billing contacts, addresses, line items and totals. They can also add notes that Example Corp staff see on those invoices. Testing stayed within the two test organizations Example Corp set up.

Evidence

GET /api/v2/invoices/48213 HTTP/1.1
Host: api.example.com
Authorization: Bearer [token for user A, organization 1001]

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 48213,
  "organization_id": 1002,
  "bill_to": "[redacted]",
  "total": "[redacted]",
  "status": "paid"
}

Steps to reproduce

  1. 1Sign in as user A (organization 1001) and open one of your own invoices. Note the request to /api/v2/invoices/{id}.
  2. 2Send the same request with the ID of an invoice that belongs to organization 1002 (48213 in testing).
  3. 3The API returns the other organization’s invoice with 200 OK. A PATCH to /api/v2/invoices/48213/notes with user A’s token also succeeds and adds a note to it.

Remediation

Check ownership on the server for every request that takes an object ID: load the invoice, compare its organization_id with the caller’s organization, and return 404 when they differ. Apply the same check to the notes endpoint and every other route that takes an ID. Add an automated test that requests another organization’s objects and expects 404. Random IDs help as defense in depth, but they are not the fix.

References

OWASP API Security Top 10 (2023), API1: Broken Object Level Authorization. CWE-639: Authorization Bypass Through User-Controlled Key.

Retest

Fixed, verified April 14, 2026. Both endpoints now return 404 for invoices outside the caller’s organization. Retested as all three customer roles.

9Retest results

Retest performed April 14, 2026, at no extra cost. Report reissued as version 1.1 on April 16, 2026.

  • F-01HighFixed, verifiedOwnership check added to both endpoints.
  • F-02MediumFixed, verifiedReset links now expire after one use or 30 minutes.
  • F-03MediumFixed, verifiedLockout after repeated failures, per account and per IP.
  • F-04LowFixed, verifiedSecure attribute set on the session cookie.
  • F-05LowNot fixedScheduled for Example Corp’s next release.
  • F-06InfoNot retestedInformational, no fix required.

10Appendix E: letter of attestation

A one-page summary you can share with customers and auditors. It proves the test happened without exposing how to exploit anything.

Invadel LLC

Sample letter, fictional client

April 16, 2026

To whom it may concern,

Invadel LLC performed a web application and API penetration test of Example Corp’s customer portal (portal.example.com) and REST API (api.example.com) between March 2 and March 6, 2026.

Testing was manual-first and followed PTES, the OWASP Web Security Testing Guide and the OWASP API Security Top 10 (2023). Testers worked without an account and as three customer roles.

Testing identified no critical findings, one high, two medium, two low and one informational finding. Example Corp remediated the findings, and Invadel retested them on April 14, 2026. The high and medium findings were verified as fixed. One low finding remains open with a fix scheduled.

This letter summarizes the engagement and leaves out vulnerability details. The full report is available to auditors and customers under confidentiality through Example Corp.

Engagement Lead

Invadel LLC

FAQ

Sample report questions

What buyers ask before they judge a penetration testing report.

01What does a penetration testing report look like?

An Invadel report has ten sections, from the cover and document control to the appendices. The excerpt on this page shows the executive summary, the findings table, one complete finding, the retest results and the attestation letter. The client is fictional; the format is the one we deliver.

Penetration testing report template
02What goes in the executive summary?

What was tested and when, the overall risk, the most serious issue in plain language, what held up, the fixes to make first, and the status when the report was issued. It has no technical detail, so leadership can read it on its own.

03How are findings rated?

Every finding gets a CVSS v3.1 base score and vector, then a severity that accounts for the business impact in your environment. When the severity differs from the CVSS band, the finding says why.

How we score findings
04Does the report show retested fixes?

Yes. The retest is included in the fixed price. Request it any time within two months of report delivery. We then reissue the report with the retest results, showing each finding as fixed, partially fixed or not fixed, with evidence.

Fixed prices, retest included
05What does the attestation letter state?

Who tested what and when, the standards followed, the number of findings by severity, and the retest outcome. It leaves out vulnerability details, so you can share it with customers, partners and auditors who ask for proof of testing.

SOC 2 penetration testing
06Can I see a report from a real engagement?

Yes. Use the form below to request a redacted report from a past engagement. We send it once the request is approved, usually within a few business hours.

Request access

Request a redacted report from a real engagement

Tell us which kind of test you are buying and we’ll send over the full redacted report from a past engagement. Not sure what to look for? Compare it with our penetration testing report template.

  • A redacted report from a real past engagement.
  • Sent over as soon as your request is approved, usually within a few business hours.
  • No obligation, and no sales pressure.

Get a real redacted report

Pick the report you want and we’ll email it over.