A comprehensive penetration test was conducted against the Damn Vulnerable Web Application (DVWA) v1.10
deployed at http://5.42.109.211:8000. The assessment combined automated scanning using
OWASP ZAP 2.17.0 with manual vulnerability verification techniques.
6 HIGH severity vulnerabilities were identified, including SQL Injection, Cross-Site Scripting (Reflected & Stored), OS Command Injection, and Unrestricted File Upload. These vulnerabilities allow complete compromise of the application and potentially the underlying host. Immediate remediation is strongly recommended.
Each finding below includes step-by-step remediation instructions. The Remediation Intelligence feature on neuro-pentest.ru provides interactive fix recommendations and code examples for all vulnerability types.
nginx proxy deployment for session injection; ZAP spider crawling of authenticated paths
OWASP ZAP 2.17.0 active scanning with context-aware authenticated scanning
Python/curl-based exploitation testing confirming all HIGH findings
Evidence-based finding documentation with CWE, CVSS, and remediation
| URL | http://5.42.109.211:8000/vulnerabilities/sqli/ |
| Vector | GET parameter 'id' |
| Confidence | Confirmed |
| Evidence | Payload: id=1' OR '1'='1 — Returns First name: admin, Surname: admin |
| Reference | OWASP T1:2021 A03:2021, CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
The 'id' parameter on the SQL Injection page is vulnerable to UNION-based and boolean-based SQL injection. User input is concatenated directly into an SQL query without sanitization or parameterization. An attacker can extract the entire database contents, including user credentials, session tokens, and application data.
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([$id]);| URL | http://5.42.109.211:8000/vulnerabilities/sqli_blind/ |
| Vector | GET parameter 'id' |
| Confidence | Confirmed |
| Evidence | Differential responses to true/false conditions confirm injectable parameter |
| Reference | OWASP T1:2021 A03:2021, CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H |
The 'id' parameter on the Blind SQL Injection page does not return query results but can be exploited using boolean-based or time-based blind injection techniques. An attacker infers data by observing conditional differences in application responses.
| URL | http://5.42.109.211:8000/vulnerabilities/xss_r/ |
| Vector | GET parameter 'name' |
| Confidence | Confirmed |
| Evidence | Payload: name= — reflected without encoding |
| Reference | OWASP T1:2021 A03:2021, CWE-79, CVSS 3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
The 'name' parameter reflects user-supplied input in the HTTP response without HTML encoding. No XSS filters or Content Security Policy are active. An attacker can inject arbitrary JavaScript code into the page.
htmlspecialchars($name, ENT_QUOTES, 'UTF-8')| URL | http://5.42.109.211:8000/vulnerabilities/xss_s/ |
| Vector | POST parameter 'mtxMessage' (guestbook) |
| Confidence | Confirmed |
| Evidence | Guestbook entry with stored and executed on page load |
| Reference | OWASP T1:2021 A03:2021, CWE-79, CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
The guestbook does not sanitize or encode user input before storing it in the database and rendering it to other users. Every visitor to the page executes the attacker's JavaScript payload automatically.
| URL | http://5.42.109.211:8000/vulnerabilities/exec/ |
| Vector | GET parameter 'ip' |
| Confidence | Confirmed (low confidence in CMDi extent — limited testing) |
| Evidence | ping command accepts shell metacharacters; semicolon-injected commands execute |
| Reference | OWASP T1:2021 A03:2021, CWE-78, CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
The 'ip' parameter is passed to PHP shell_exec() without sanitization. Shell metacharacters (; | & $ `) are not filtered. Arbitrary OS commands execute with the privileges of the web server user (www-data).
proc_open(['ping', '-c', '1', $ip], ...)| URL | http://5.42.109.211:8000/vulnerabilities/upload/ |
| Vector | Multipart POST file upload |
| Confidence | Confirmed |
| Evidence | PHP webshell uploaded successfully; returns 'successfully uploaded' message |
| Reference | OWASP T1:2021 A04:2021, CWE-434, CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
The file upload functionality accepts any file type including executable scripts (.php, .phtml, .phar). Uploaded files are stored in a web-accessible directory without renaming or validation. An attacker can upload and execute a webshell.
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $tmpfile);
$allowed = ['image/jpeg', 'image/png', 'image/gif'];
The following security misconfigurations were identified by OWASP ZAP's passive and active scanners. While not directly exploitable for code execution, they reduce the application's defense-in-depth posture.
| Affected URLs | /sitemap.xml /login.php |
Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a
Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.
| Affected URLs | /login.php |
The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.
Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app. If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementin
| Risk | Finding | PluginID | Affected Pages |
|---|---|---|---|
| Low | Server Leaks Version Information via "Server" HTTP Response Header Field | 10036 |
8 pages |
| Low | In Page Banner Information Leak | 10009 |
1 page |
| Low | X-Content-Type-Options Header Missing | 10021 |
5 pages |
| Info | Authentication Request Identified | 10111 |
/login.php |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
| Info | User Agent Fuzzer | 10104 |
/vulnerabilities/sqli/ |
+ 75 additional informational alerts in full report.
| Target | http://5.42.109.211:8000 — DVWA v1.10 (Docker) |
| Scanner | OWASP ZAP 2.17.0 (daemon mode) |
| Manual Tools | Python 3 + requests library, curl, bash |
| Authentication | nginx reverse proxy with session cookie injection (PHPSESSID) |
| Scan Date | 2026-06-27 |
| Remediation | neuro-pentest.ru/remediation |