Web Application Vulnerability Assessment and Security Remediation Lab
A comprehensive penetration testing and dynamic vulnerability assessment lab focused on identifying, exploiting, and mitigating critical security flaws within a Python Flask web application.
This project demonstrates an end to end security audit workflow, from initial threat analysis and dynamic vulnerability discovery to secure coding implementation and post remediation validation.
Project Objectives
-
Vulnerable Application Simulation Design and deploy a target web application containing intentional security flaws based on the OWASP Top 10.
-
Dynamic Application Security Testing (DAST) Perform vulnerability scanning and manual payload injection in an isolated Kali Linux environment.
-
Exploitation and Risk Evaluation Assess the impact of discovered vulnerabilities such as authentication bypass, script execution, and sensitive data exposure.
-
Security Hardening and Remediation Re-engineer the backend to eliminate vulnerabilities using secure coding standards and modern security controls.
Security Tools and Stack
Backend and App Stack: Python 3, Flask, SQLite3, WTForms, Jinja2 Testing Environment: Kali Linux, FoxyProxy DAST and Interception: Burp Suite Community Edition, OWASP ZAP Exploitation Tools: sqlmap, Nikto Web Scanner Security Controls: Parameterized Queries, Werkzeug Hashing, HTTP Security Headers
Vulnerability Matrix and Remediation Summary
Vulnerability: SQL Injection (SQLi) Initial Risk: Critical Threat Impact: Database extraction and authentication bypass Mitigation Applied: Replaced raw SQL queries with Prepared Statements and Parameterized Queries. Status: Resolved
Vulnerability: Cross Site Scripting (XSS) Initial Risk: High Threat Impact: Session hijacking and malicious script injection Mitigation Applied: Implemented input sanitization via WTForms and auto escaping in Jinja2 templates. Status: Resolved
Vulnerability: Broken Authentication Initial Risk: High Threat Impact: Credential stuffing and unauthorized access Mitigation Applied: Implemented Werkzeug password hashing, enforced strong password policies, and improved session handling. Status: Resolved
Vulnerability: Missing Security Headers Initial Risk: Medium Threat Impact: Clickjacking, MIME sniffing, and downgrade attacks Mitigation Applied: Configured HTTP response headers including X-Frame-Options DENY, X-Content-Type-Options nosniff, and HSTS. Status: Resolved
Security Audit Workflow
-
Assessment and Discovery Phase Automated Scanning: Executed full surface scans using OWASP ZAP and Nikto to map endpoints and flag missing HTTP security headers. Manual Interception: Utilized Burp Suite Proxy to intercept and modify HTTP requests, testing input validation on login and file upload forms. Automated Exploitation: Used sqlmap to confirm parameter based SQL injection vulnerabilities in authentication routes.
-
Remediation and Hardening Phase Database Abstraction: Refactored database logic to enforce strict parameterized queries, neutralizing payload execution. Input and Output Hygiene: Integrated strict server side validation rules for user input and context aware output encoding. Session and Header Security: Configured explicit security response headers to enforce HTTPS and protect against client side browser attacks.
Documentation
A full step by step Penetration Testing and Vulnerability Assessment Report is available in the repository. It contains complete evidence, step-by-step tool workflows (Burp Suite, OWASP ZAP, sqlmap, Nikto), attack Proofs of Concept (PoCs), and code remediation diffs.
View the full report: Web_Vulnerability_Assessment_Report.pdf
Repository Structure
vulnerable_app: Baseline application containing intentional security vulnerabilities secure_app: Hardened application codebase with full security mitigations docs: Detailed Penetration Testing and Vulnerability Report PDF .gitignore: Configured to exclude temporary build and cache files README.md: Project documentation
Installation and Local Setup
-
Clone the Repository git clone https://github.com/ghida-a/Web-app-vulnerability-assessment.git cd Web-app-vulnerability-assessment
-
Create and Activate a Virtual Environment python -m venv venv On Linux or macOS: source venv/bin/activate On Windows: venv\Scripts\activate
-
Install Dependencies pip install -r requirements.txt
-
Launch the Secure Application python app2.py Access the web interface at http://127.0.0.1:5000
Documentation
A full step by step Penetration Testing and Remediation Report is available in the docs folder, detailing scan outputs, exploit proofs of concept, and code diffs.
Author
Ghida Alnahar Cybersecurity Specialist / Student