WebShield is a Flask-based vulnerability scanner designed to help users identify and analyze security issues in web applications. It integrates multiple security tools like Nmap, OWASP ZAP, and threat intelligence sources to provide comprehensive security scanning.
✅ User Authentication - Secure login and registration using Flask-Login & bcrypt.
✅ Multiple Scan Modes - Quick, Full, and Custom scans to suit different security needs.
✅ Nmap Integration - Port scanning and service detection.
✅ OWASP ZAP Integration - Web vulnerability scanning for common threats like SQL Injection, XSS, and Directory Traversal.
✅ Threat Intelligence - Fetches CVE details and indicators from external sources like NVD & Abuse.ch.
✅ Real-time Scan Monitoring - Live scan progress tracking with event updates.
✅ Detailed Reporting - Generates HTML, JSON, and PDF reports with vulnerability details.
✅ Dark Mode UI - Sleek Bootstrap-powered dashboard with an intuitive user interface.
git clone https://github.com/yourusername/WebShield.git
cd WebShieldpython3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in the root directory and configure the following:
FLASK_APP=main.py
FLASK_ENV=production
SESSION_SECRET=your_secret_key
DATABASE_URL=sqlite:///vulnscanner.db
flask db upgradepython main.pyVisit http://127.0.0.1:5000/ in your browser.
Create an account and log in to access the dashboard.
- Navigate to the Dashboard
- Click "New Scan" and enter a Target URL
- Choose from Quick, Full, or Custom Scan
- Monitor scan progress in real-time
- Once the scan is complete, view the detailed report
- Export the report in PDF, HTML, or JSON format
| Method | Endpoint | Description |
|---|---|---|
POST |
/scan |
Start a new scan |
GET |
/scan/<scan_id> |
Get scan details |
GET |
/report/<report_id> |
View scan report |
GET |
/api/scan/status/<scan_id> |
Get scan status |
POST |
/api/scan/cancel/<scan_id> |
Cancel an ongoing scan |
GET |
/report/export/<report_id>?format=pdf |
Export report |
- Backend: Flask, SQLAlchemy, Flask-Login
- Frontend: Bootstrap, Jinja2, JavaScript
- Database: SQLite (default) / MySQL
- Security Tools: Nmap, OWASP ZAP, Threat Intelligence APIs
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a new branch (
feature-branch) - Commit changes and push to GitHub
- Submit a pull request
We appreciate the following contributors who helped build WebShield: