Hacking Labs -- Day 2026 of 300
100%

DVWA Pentest Report Lab 2026 — Write a Professional Penetration Test Report From Your DVWA Findings | Hacking Lab2

DVWA Pentest Report Lab 2026 — Write a Professional Penetration Test Report From Your DVWA Findings | Hacking Lab2
🧪 DVWA LAB SERIES
FREE

Part of the DVWA Complete Lab Series

Lab 28 of 30 · 93% complete

I have reviewed hundreds of pentest reports submitted by junior practitioners applying for roles on my team. The pattern is consistent: the technical work is solid — they found real vulnerabilities, they exploited them cleanly, they have the screenshots. But the reports do not communicate what they found. The executive summary is three bullet points that mention SQL injection and XSS without explaining why those things matter to the business. The findings are technically accurate but the remediation sections say “implement proper input validation.” The CVSS scores are missing or wrong. The report does not tell the story that makes a client act.
Report writing is the skill that closes the gap between finding vulnerabilities and getting paid to find them. A client cannot implement what they cannot understand. A hiring manager cannot evaluate skills they cannot read. Lab 28 is where you document everything you found in DVWA Labs 1 through 27 in a professional deliverable format — the same structure I use for client engagements. By the end of this lab you will have a complete pentest report you can show in interviews, submit as a portfolio piece, and adapt as a template for your first paid engagement.

🎯 What You’ll Master in Lab 28

Write a professional executive summary that communicates risk to a non-technical audience
Calculate accurate CVSS v3.1 scores for each DVWA finding category
Write complete technical finding write-ups with evidence, reproduction steps, and remediation
Structure a full pentest report in the format used by professional consultancies
Write specific source-informed remediation recommendations (from Lab 27 source code review)
Produce a portfolio-ready report document that demonstrates professional competency

⏱️ Lab 28 · 3 exercises · Writing + DVWA + Report tool of choice

✅ Prerequisites

  • Lab 27 — Source Code Review

    — your remediation recommendations will cite the Impossible-level source code as the correct fix; Lab 27 knowledge is required

  • Screenshots from at least 5 DVWA labs (SQL injection, XSS, command injection, CSRF, file inclusion) ready for the evidence section
  • Burp Suite HTTP request/response captures from your DVWA sessions — the requests go in the evidence appendix
  • A word processor, Google Docs, or Markdown editor — the report format is your choice

Labs 1 through 27 built your technical exploitation and source review skills across every major DVWA vulnerability class. Lab 28 is the capstone — turning everything you found into a document that communicates those findings professionally. The DVWA lab series concludes at Lab 30 with advanced exploitation chaining. This report becomes the documentation for that chain as well.


Professional Report Structure — The Complete Template

Professional penetration test reports follow a consistent structure across the industry. The structure matters because clients and their security teams know what to expect and where to find specific information. Deviating from it adds friction. Here is the complete section order I use on every engagement.

PENTEST REPORT STRUCTURE — COMPLETE SECTION ORDER
# ── SECTION 1: COVER PAGE ──────────────────────────────────────
Report Title: Web Application Penetration Test Report
Client: [Client Name]
Engagement Dates: [Start Date] — [End Date]
Report Date: [Delivery Date]
Prepared By: [Name / Organisation]
Classification: CONFIDENTIAL
# ── SECTION 2: EXECUTIVE SUMMARY (1 page max) ──────────────────
Overall risk rating, findings count by severity, key message
Written for non-technical audience — no jargon
# ── SECTION 3: SCOPE AND METHODOLOGY ──────────────────────────
Targets tested, testing approach, tools used, testing period
What was out of scope, any testing constraints
# ── SECTION 4: FINDINGS SUMMARY TABLE ─────────────────────────
Finding | Severity | CVSS Score | Status
All findings in one table — sortable by severity
# ── SECTION 5: TECHNICAL FINDINGS (one sub-section per finding)
5.1 [Critical Finding Title] — CVSS 9.8
5.2 [High Finding Title] — CVSS 8.0
5.3 [Medium Finding Title] — CVSS 5.3
[… continue for all findings, severity descending]
# ── SECTION 6: REMEDIATION ROADMAP ────────────────────────────
Priority order for remediation, estimated effort per finding
Quick wins (low effort, high impact) listed first
# ── APPENDIX A: TOOL OUTPUT ────────────────────────────────────
Raw Burp Suite exports, Nmap output, SQLMap output if used
# ── APPENDIX B: METHODOLOGY REFERENCES ────────────────────────
OWASP Testing Guide version, CVSS v3.1, any relevant CVEs

🧠 EXERCISE 1 — THINK LIKE A HACKER (20 MIN · NO TOOLS)
Triage and Severity-Rank All Your DVWA Findings Before Writing

⏱️ 20 minutes · No tools needed — just your lab notes

Before writing a word of the report, professional pentesters triage all findings and sort them by severity. Getting the severity wrong changes the client’s response — a Critical that is filed as Medium gets deprioritised. A Low that is filed as Critical creates panic where none is needed. Work through this triage exercise before opening your report template.

For each DVWA finding below, assign a severity (Critical/High/Medium/Low)
and write a one-sentence business impact statement.
Do not use the vulnerability name in the impact statement.
Explain what an attacker can DO, not what the vulnerability IS.

FINDING A: SQL Injection in login form — attacker can extract
the users table including username/password hashes.

FINDING B: Stored XSS in comment field — script executes for
every user who views the page.

FINDING C: Command injection in ping utility — attacker can
run arbitrary OS commands as the web server user.

FINDING D: CSRF in password change form — no token required.

FINDING E: File inclusion — attacker can read /etc/passwd.

FINDING F: Reflected XSS in search parameter — requires victim
to click a crafted link.

FINDING G: Weak session token — predictable sequential integers.

FINDING H: Brute force login — no lockout after failed attempts.

For each finding, write:
Severity: [Critical/High/Medium/Low]
CVSS Score range: [e.g. 8.0-9.0]
Business Impact: “[One sentence — no jargon]”
Evidence needed: “[What screenshot/request proves this?]”

✅ You just triaged 8 findings and have the severity rankings, business impact statements, and evidence checklist that structure the entire report. Expected answers: (A) Critical/9.8 — full database access including user credentials; (B) High/8.8 — every user’s browser session can be hijacked; (C) Critical/9.8 — complete server compromise; (D) Medium/6.5 — account modification without user action; (E) High/7.5 — sensitive server files accessible; (F) Medium/6.1 — victim session theft requires one click; (G) High/7.5 — account compromise by guessing; (H) Medium/5.3 — credential stuffing feasible without detection. The sorted list is your Findings Summary Table for Section 4.

📸 Share your completed triage table in #dvwa-labs on Discord.


Executive Summary — Writing for Non-Technical Readers

The executive summary is the most-read and least-well-written section in most pentest reports. Every CISO reads it. Most CTOs read it. The CEO or CFO reads it when the finding is significant. None of them want to read about SQL injection — they want to know whether the company is at risk, what could happen, and what to do first.

Three rules I follow for every executive summary. First: no technical jargon whatsoever. Replace “SQL injection” with “the ability to read the entire user database.” Replace “stored XSS” with “code that runs in any visitor’s browser and can steal their login session.” Replace “command injection” with “the ability to run any command on the web server.” Second: lead with the overall risk, not the finding count. “The application presents a Critical level of risk to the organisation” is a stronger opener than “we found 14 vulnerabilities.” Third: end with one action. One specific, named, achievable action the client should take this week.

EXECUTIVE SUMMARY TEMPLATE — DVWA REPORT
EXECUTIVE SUMMARY
SecurityElites conducted a web application penetration test of the
DVWA application between [dates]. The assessment identified
[X] vulnerabilities across [X] severity categories.
The application presents CRITICAL risk to the organisation.
An unauthenticated attacker with internet access can:
→ Read every username and password stored in the database
→ Execute arbitrary commands on the web server operating system
→ Redirect any user’s browser session to an attacker-controlled page
These capabilities exist because the application processes user
input without verification before using it in database queries,
operating system commands, and web page output.
FINDINGS SUMMARY
Critical: 2 findings
High: 3 findings
Medium: 4 findings
Low: 3 findings
IMMEDIATE ACTION REQUIRED
The two Critical findings (SQL injection in the user lookup function
and OS command injection in the network utility) should be remediated
before this application is accessible to users. Remediation guidance
is provided in Section 5 of this report.


CVSS v3.1 Scoring — Getting the Numbers Right

CVSS scores are the shared language that lets clients prioritise remediation, lets vendors communicate severity, and lets security teams justify budget. Getting them wrong undermines your credibility. Getting them right — with the vector string that shows your reasoning — demonstrates professional rigour.

Use the calculator at first.org/cvss/calculator/3.1 for every finding. Never guess the score. The six base metrics are the only ones that go in the base score — Temporal and Environmental metrics are optional and rarely used in standard pentest reports.

CVSS v3.1 SCORING — DVWA FINDINGS WORKED EXAMPLES
# ── FINDING: SQL Injection (unauthenticated, full DB read) ──────
Attack Vector: Network (exploitable remotely)
Attack Complexity: Low (no special conditions)
Privileges Required: None (no login needed)
User Interaction: None (no victim click needed)
Scope: Unchanged (stays within web app boundary)
Confidentiality: High (full DB contents readable)
Integrity: High (DB data can be modified)
Availability: High (DB can be dropped)
CVSS Base Score: 9.8 CRITICAL
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
# ── FINDING: Reflected XSS (requires victim click) ──────────────
Attack Vector: Network
Attack Complexity: Low
Privileges Required: None
User Interaction: Required (victim must click link)
Scope: Changed (attacker gains browser context)
Confidentiality: Low (session cookie theft possible)
Integrity: Low (page content modifiable)
Availability: None
CVSS Base Score: 6.1 MEDIUM
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
# ── FINDING: Command Injection (authenticated required) ─────────
Attack Vector: Network
Attack Complexity: Low
Privileges Required: Low (requires login)
User Interaction: None
Scope: Changed (OS level beyond web app)
Confidentiality: High
Integrity: High
Availability: High
CVSS Base Score: 9.0 CRITICAL
Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H


Technical Finding Write-Up — The Complete Format

Each technical finding in Section 5 follows the same structure. Consistency matters — a reviewer reading finding 8 should not have to search for the CVSS score in a different place than finding 2. Here is the complete format with a worked SQL injection example.

COMPLETE FINDING FORMAT — SQL INJECTION WORKED EXAMPLE
5.1 SQL Injection in User Lookup Function
Severity: CRITICAL
CVSS Score: 9.8
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Affected URL: http://target/dvwa/vulnerabilities/sqli/
Parameter: id (GET)
DESCRIPTION
The user lookup function at /dvwa/vulnerabilities/sqli/ passes the
user-supplied ‘id’ parameter directly into an SQL query without
sanitisation or parameterisation. An attacker can manipulate the
query to extract arbitrary data from the database.
STEPS TO REPRODUCE
1. Navigate to http://target/dvwa/vulnerabilities/sqli/
2. Enter the following payload in the User ID field:
1′ UNION SELECT user, password FROM users– –
3. Submit the form
4. Observe that the application returns all usernames and
MD5 password hashes from the users table
EVIDENCE
See Figure 5.1.1 — screenshot showing payload and database dump
See Figure 5.1.2 — Burp Suite request with injected payload
BUSINESS IMPACT
An unauthenticated attacker with access to the application can
extract every username and password hash stored in the database.
MD5 hashes are crackable with widely available tools — successful
credential cracking would provide access to all user accounts
and any other systems where users reuse those passwords.
REMEDIATION
Replace the current query construction (line 47, sqli/source/low.php):
$query = “SELECT … WHERE user_id = ‘$id’;”;
With a parameterised prepared statement:
$stmt = $db->prepare(“SELECT first_name, last_name FROM users
WHERE user_id = ? LIMIT 1;”);
$stmt->bind_param(‘i’, $id);
Reference: DVWA Impossible security level source — sqli/source/impossible.php

securityelites.com
Professional Finding Block — Report Format
5.1 SQL Injection in User Lookup Function
Severity:CRITICAL
CVSS Score:9.8
Affected URL:/dvwa/vulnerabilities/sqli/
Parameter:id (GET)

Business Impact
An unauthenticated attacker can extract every username and password hash from the database. MD5 hashes are crackable — this finding represents a complete compromise of all user accounts.
Remediation
Replace direct variable concatenation with PDO prepared statements (as implemented in DVWA Impossible security level, sqli/source/impossible.php).

📸 Professional finding block showing the complete format: severity badge, CVSS score, affected component, business impact in plain language, and source-specific remediation recommendation. This format is consistent across every finding in the report — Critical findings lead in red, the business impact uses no jargon, and the remediation cites the specific file and function to change.

⚡ EXERCISE 2 — KALI TERMINAL (25 MIN)
Calculate CVSS Scores for All 8 DVWA Findings

⏱️ 25 minutes · Browser — CVSS calculator at first.org/cvss

This exercise calculates accurate CVSS v3.1 base scores for the 8 DVWA findings from Exercise 1. Work through every metric for each finding. Getting the scores right requires thinking through each metric carefully — do not estimate.

Open the CVSS v3.1 calculator: https://www.first.org/cvss/calculator/3.1

For each finding, work through all 6 base metrics and record:
— Base Score (e.g. 9.8)
— Severity Label (Critical/High/Medium/Low/Informational)
— Vector String (e.g. CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

FINDING A: SQL Injection — unauthenticated, reads full user table
FINDING B: Stored XSS — executes for every page visitor (no click needed)
FINDING C: Command Injection — requires login, runs OS commands
FINDING D: CSRF — changes password without user action (attacker needs link clicked)
FINDING E: File Inclusion — reads /etc/passwd, unauthenticated
FINDING F: Reflected XSS — requires victim to click crafted link
FINDING G: Weak session token — sequential integers, no authentication
FINDING H: Brute force login — no account lockout

Key metrics to reason through carefully:
— User Interaction: Required only if victim must actively click something
— Scope: Changed if the impact crosses security boundaries (e.g. web → OS)
— Privileges Required: None if unauthenticated access works; Low if any login

Cross-check your scores against the worked examples above.
For any score that differs significantly, re-examine that metric.
What did you assess differently and why?

✅ You just calculated accurate CVSS scores for 8 findings — the foundation of the findings table in Section 4. Expected scores: (A) 9.8 Critical; (B) 8.8 High; (C) 9.0 Critical; (D) 8.8 High; (E) 7.5 High; (F) 6.1 Medium; (G) 7.5 High; (H) 5.3 Medium. The most common errors: marking Scope as Unchanged for command injection (it should be Changed — you move from web app to OS), and marking User Interaction as None for CSRF (it should be Required — a victim must visit the malicious page). Both change the final score significantly.

📸 Screenshot your CVSS calculator showing the vector string for the most complex finding. Share in #dvwa-labs on Discord.


Evidence Documentation — Screenshots and Request Captures

Evidence in a pentest report has one job: prove to a reader who was not present that the vulnerability exists and the impact you described is real. Every Critical and High finding needs a minimum of two evidence items: a screenshot showing the vulnerability being exploited and the Burp Suite HTTP request that triggered the finding. The screenshot proves the impact visually. The request proves reproducibility technically — a developer can copy that request into their own Burp and confirm the finding immediately.

EVIDENCE CHECKLIST PER FINDING SEVERITY
# CRITICAL findings — maximum evidence
✅ Screenshot of exploit payload submitted
✅ Screenshot of response showing extracted data
✅ Burp Suite request with payload (from Proxy history export)
✅ Burp Suite response showing sensitive data
✅ Step-by-step reproduction numbered list
# HIGH findings
✅ Screenshot of vulnerability confirmed
✅ Burp request showing the exploitation
✅ Numbered reproduction steps
# MEDIUM findings
✅ Screenshot or request showing the issue exists
✅ Numbered reproduction steps
# LOW / INFORMATIONAL findings
✅ Brief description with URL/parameter affected
Optional: screenshot if helpful for clarity
# Screenshot best practices
— Annotate with red boxes or arrows pointing to the key detail
— Include the URL bar to show the target is correct
— Blur any real passwords, personal data, or irrelevant credentials
— Export Burp requests as text (right-click → Copy to file)
— Caption every figure: “Figure 5.1.1 — SQL injection payload returning user hashes”

⚡ EXERCISE 3 — KALI TERMINAL (30 MIN)
Write Your Complete DVWA Pentest Report

⏱️ 30 minutes · Your word processor · All DVWA screenshots ready

This is the capstone exercise for the entire DVWA lab series. Using the triage table from Exercise 1, the CVSS scores from Exercise 2, and your screenshots and Burp captures from previous labs, write a complete penetration test report. Work through every section in order.

REPORT WRITING SEQUENCE:

1. Create your document using the structure from Section 1.
Set up all headings and sub-sections before writing content.

2. Write Section 4 (Findings Summary Table) first — you already
have severity, CVSS scores, and finding titles from Exercise 1 and 2.
Create a table: Finding | Severity | CVSS | Status (Open)

3. Write each technical finding in Section 5.
Use the complete format from this article for each one.
Start with Critical findings, work down to Low.
For each finding write: Title, Severity, CVSS, URL, Description,
Steps to Reproduce, Evidence (figure references), Business Impact,
Remediation (cite Impossible source from Lab 27).
Minimum 4 technical findings documented in full.

4. Write Section 3 (Scope and Methodology).
State: testing was against DVWA running at http://localhost/dvwa.
Testing approach: manual with Burp Suite proxy.
Security level tested: Low.
Tools used: Burp Suite, manual payload testing.

5. Write the Executive Summary last.
Use the template from Section 2.
Fill in your actual finding counts.
Name the two Critical findings specifically.
Write the Immediate Action Required paragraph.

6. Add cover page and appendix structure.

7. Review: read the executive summary out loud.
If you cannot explain it to a non-technical person in 3 minutes,
rewrite it until you can.

✅ You have a complete penetration test report. This document represents the full output of a professional web application security assessment and is the deliverable that clients receive at the end of an engagement. It is also your portfolio piece — something tangible you can show in interviews and include in your professional profile. The report writing skill you just practised is what separates practitioners who find vulnerabilities from professionals who get paid to find vulnerabilities and communicate them clearly. Keep this template. You will adapt it for every future engagement.

📸 Screenshot your completed report’s executive summary page. Share in #dvwa-labs on Discord. Tag #lab28complete and #dvwa-series-complete

📋 Pentest Report Writing — Lab 28 Reference Card

Report section orderCover → Exec Summary → Scope → Findings Table → Technical Findings → Remediation → Appendix
Executive summary ruleNo jargon — explain impact, not vulnerability class
CVSS calculatorfirst.org/cvss/calculator/3.1 — use for every finding
CVSS vector stringCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Critical evidence minimum2× screenshots + Burp request + response + repro steps
Remediation specificityCite exact file, line, and fix — not “sanitise input”
Business impact ruleWhat can attacker DO — not what the vulnerability IS
Scope Changed vs UnchangedChanged = exploit crosses boundaries (web → OS, app → DB)
Finding sort orderCritical first, descending by CVSS score within each level

✅ Lab 28 Complete — Professional Pentest Report

You have a complete penetration test report documenting your DVWA findings with professional severity ratings, CVSS scores, business impact statements, and source-informed remediation recommendations. Lab 29 covers Metasploitable 2 — a new target, all new vulnerabilities, and the same report writing skills applied to a broader attack surface than DVWA’s controlled environment.


🧠 Lab 28 Check

You are scoring a command injection vulnerability in DVWA. It requires the attacker to be authenticated (low privileges), can be exploited remotely, has no complexity beyond basic injection, requires no user interaction, and gives the attacker OS-level command execution beyond the web application boundary. What Scope and Privileges Required values do you assign, and why does Scope = Changed matter for the final score?



❓ Pentest Report Writing FAQ

What should a penetration test report include?
A complete pentest report includes: cover page and engagement details; executive summary (non-technical, one page); scope and methodology; findings table sorted by severity; individual technical finding write-ups (title, severity, CVSS, description, reproduction steps, evidence, business impact, remediation); remediation roadmap; and appendices with raw tool output. Every Critical and High finding needs a minimum of two evidence items.
How do you calculate CVSS scores for pentest findings?
Use the CVSS v3.1 calculator at first.org/cvss/calculator/3.1. Assess six base metrics: Attack Vector, Attack Complexity, Privileges Required, User Interaction, Scope, and the three impact metrics (Confidentiality, Integrity, Availability). The calculator outputs a base score and vector string — include both in the report. Never estimate CVSS scores; always use the calculator.
What is the difference between a pentest report and a bug bounty report?
A bug bounty report is a single finding with a title, reproduction steps, impact statement, and fix — submitted via a platform form. A penetration test report is a formal comprehensive document covering all findings from a scoped engagement with executive summary, risk ratings, business context, and a remediation roadmap. Bug bounty reports are brief; pentest reports are 20-100+ page professional deliverables.
How do you write a good executive summary for a pentest report?
Write it last but place it first. No technical jargon whatsoever — replace “SQL injection” with “ability to read the entire user database.” Lead with overall risk, not finding count. Name the most critical finding in business impact terms. End with one specific, named, achievable immediate action. If you cannot explain it to a CFO in five minutes, rewrite it.
What makes a pentest finding write-up professional quality?
Professional findings have: a clear title describing the vulnerability and affected component; accurate CVSS score with vector string; numbered reproduction steps an independent tester can follow; at least one screenshot confirming impact; a business impact statement explaining what an attacker can do (not what the technical vulnerability is); and a specific remediation recommendation citing the exact fix, not generic guidance.
What tools do pentesters use to write reports?
Common tools: PlexTrac and AttackForge for professional report management with finding libraries. Dradis for open-source report collaboration. SysReptor for modern markdown-based reports. Many consultancies use custom Word templates. For individual practitioners, a structured Word or Markdown template with consistent finding blocks works perfectly. The structure and content matter far more than the tool.
← Previous

Lab 27 — Source Code Review

Next →

DVWA Lab Series Hub

📚 Further Reading

  • Lab 27 — Source Code Review — The remediation recommendations in your report cite the DVWA Impossible source code — Lab 27 source analysis is the direct prerequisite for this lab.
  • Lab 22 — Vulnerability Chaining — When two findings combine to produce a higher-impact chain, the report section needs to document the chain finding as a separate entry above its component findings.
  • DVWA Complete Lab Series — All 30 labs from setup through advanced exploitation — the complete skills reference that produced the findings in your Lab 28 report.
  • CVSS v3.1 Calculator — FIRST.org — The authoritative CVSS v3.1 scoring calculator — bookmark this. Every finding in every report you write from this point forward gets a score from this page.
  • OWASP Web Security Testing Guide — The industry standard methodology reference cited in the Appendix B of professional pentest reports — maps DVWA vulnerability classes to formal testing procedures and remediation standards.
ME
Mr Elite
Owner, SecurityElites.com
The report that got me my first consultancy role was the DVWA report I wrote as a self-directed lab exercise. Not a client report — a practice report exactly like the one you just wrote in Lab 28. The hiring manager asked me to walk through one finding on a whiteboard during the interview. I walked through the SQL injection finding: source code, payload, CVSS calculation, business impact, remediation citing the prepared statement fix. He told me afterwards that most candidates could demonstrate the exploit but could not explain the CVSS score or write the business impact without jargon. Report writing is the skill that closes. Build the habit now and every engagement becomes easier to deliver.

Join free to earn XP for reading this article Track your progress, build streaks and compete on the leaderboard.
Join Free

Leave a Comment

Your email address will not be published. Required fields are marked *