Skip to content

hack509/WebAudit

Repository files navigation

WebAudit πŸ”

Professional Web Application Auditing Tool

WebAudit est un outil Python modulaire capable d'auditer automatiquement une application web. Il combine les fonctionnalitΓ©s de SonarQube, Lighthouse, Postman, Playwright et OWASP Scanner dans un seul outil en ligne de commande.

DΓ©veloppΓ© par Desulma Jhonsley.


✨ Fonctionnalités

Module Description
πŸ”Ž DΓ©couverte DΓ©tection automatique des frameworks, serveurs, versions
πŸ”§ Backend Test des routes, headers, CORS, compression, rate limiting
🌐 API Test de tous les verbes HTTP, payloads, injections, charge
🎨 Frontend Scan des pages, liens cassés, images, formulaires, SEO, PWA
πŸ”’ SΓ©curitΓ© OWASP Top 10, XSS, SQL Injection, CSRF, secrets exposΓ©s
⚑ Performance TTFB, LCP, CLS, FID, cache, compression, bundle sizes
🎯 UX Contraste, touch targets, overflow, texte coupé, images déformées
πŸ“œ JavaScript Console errors, warnings, memory leaks, deprecated APIs
πŸ”‘ Auth Login, registration, JWT, session, brute force, OAuth
πŸ—„οΈ Base de donnΓ©es Connexion, schΓ©ma, indexes, contraintes (PostgreSQL, MySQL, SQLite)
πŸ“± Mobile Responsive, viewport, safe area, touch targets, orientation
πŸ§ͺ E2E Tests Playwright : navigation, auth, formulaires, recherche
πŸ“Έ Screenshots Captures Desktop, Tablet, Mobile
πŸ“Š Rapports HTML, PDF, JSON, CSV, Markdown (FR/EN)

πŸš€ Installation

PrΓ©requis

  • Python 3.10+
  • pip

Installation

# Cloner le projet
cd webAudit

# CrΓ©er un environnement virtuel
python -m venv venv

# Activer l'environnement (Windows)
venv\Scripts\activate

# Activer l'environnement (Linux/macOS)
source venv/bin/activate

# Installer les dΓ©pendances
pip install -r requirements.txt

# Installer Playwright et ses navigateurs
playwright install chromium

πŸ“– Utilisation

Mode interactif

python main.py

Un menu interactif s'affiche :

 ╔══════════════════════════════════════╗
 β•‘       πŸ“‹ Menu Principal              β•‘
 ╠══════════════════════════════════════╣
 β•‘   1  Audit complet                   β•‘
 β•‘   2  Audit Backend                   β•‘
 β•‘   3  Audit Frontend                  β•‘
 β•‘   4  Audit API                       β•‘
 β•‘   5  Audit SΓ©curitΓ©                  β•‘
 β•‘   6  Audit Performance               β•‘
 β•‘   7  Audit UX                        β•‘
 β•‘   8  Audit JavaScript                β•‘
 β•‘   9  Audit Mobile                    β•‘
 β•‘  10  Audit Authentification          β•‘
 β•‘  11  Audit Base de donnΓ©es           β•‘
 β•‘  12  Tests End-to-End                β•‘
 β•‘  13  Captures d'Γ©cran                β•‘
 β•‘  14  GΓ©nΓ©rer rapport                 β•‘
 β•‘  15  Configuration                   β•‘
 β•‘   0  Quitter                         β•‘
 β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Mode CLI direct

# Audit complet
python main.py --url https://example.com

# Audit avec JWT
python main.py --url https://api.example.com --token eyJhbGciOiJ...

# Audit avec credentials
python main.py --url https://example.com --user admin --password secret

# Modules spΓ©cifiques
python main.py --url https://example.com --module security performance

# Configuration JSON
python main.py --config config/default_config.json

# Choix du format de rapport
python main.py --url https://example.com --format html pdf json csv markdown

# Rapport en anglais
python main.py --url https://example.com --lang en

# Mode verbose
python main.py --url https://example.com --verbose

βš™οΈ Configuration

Fichier JSON

CrΓ©ez un fichier de configuration (voir config/default_config.json) :

{
  "target": {
    "url": "https://example.com",
    "api_base": "/api/v1"
  },
  "auth": {
    "jwt_token": "eyJhbG...",
    "username": "admin",
    "password": "secret"
  },
  "database": {
    "connection_string": "postgresql://user:pass@localhost/dbname"
  },
  "report": {
    "formats": ["html", "json", "pdf"],
    "language": "fr"
  }
}

Options CLI

Option Description
--url URL cible Γ  auditer
--source Chemin vers le code source
--token Token JWT pour l'authentification
--user Nom d'utilisateur
--password Mot de passe
--config Fichier de configuration JSON
--output RΓ©pertoire de sortie des rapports
--format Formats de rapport (html, pdf, json, csv, markdown)
--module Modules spΓ©cifiques Γ  exΓ©cuter
--lang Langue des rapports (fr, en)
--verbose Mode verbeux

πŸ—οΈ Architecture

webAudit/
β”œβ”€β”€ main.py                    # Point d'entrΓ©e CLI
β”œβ”€β”€ requirements.txt           # DΓ©pendances
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ settings.py           # ModΓ¨les de configuration (Pydantic)
β”‚   └── default_config.json   # Configuration par dΓ©faut
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ logger.py             # Logging centralisΓ© (Rich)
β”‚   β”œβ”€β”€ http_client.py        # Client HTTP (sync + async)
β”‚   β”œβ”€β”€ helpers.py            # Fonctions utilitaires
β”‚   β”œβ”€β”€ constants.py          # Constantes (payloads, signatures)
β”‚   └── scoring.py            # Moteur de scoring
β”œβ”€β”€ audit/
β”‚   β”œβ”€β”€ base.py               # BaseAuditor (classe abstraite)
β”‚   β”œβ”€β”€ result.py             # ModΓ¨les de donnΓ©es (findings, results)
β”‚   β”œβ”€β”€ runner.py             # Orchestrateur d'audit
β”‚   β”œβ”€β”€ discovery/            # Module 1 β€” DΓ©couverte
β”‚   β”œβ”€β”€ backend/              # Module 2 β€” Backend
β”‚   β”œβ”€β”€ api/                  # Module 3 β€” API
β”‚   β”œβ”€β”€ frontend/             # Module 4 β€” Frontend
β”‚   β”œβ”€β”€ ux/                   # Module 5 β€” UX
β”‚   β”œβ”€β”€ performance/          # Module 6 β€” Performance
β”‚   β”œβ”€β”€ javascript/           # Module 7 β€” JavaScript
β”‚   β”œβ”€β”€ security/             # Module 8 β€” SΓ©curitΓ©
β”‚   β”œβ”€β”€ auth/                 # Module 9 β€” Authentification
β”‚   β”œβ”€β”€ database/             # Module 10 β€” Base de donnΓ©es
β”‚   β”œβ”€β”€ mobile/               # Module 11 β€” Mobile
β”‚   β”œβ”€β”€ e2e/                  # Module 12 β€” E2E
β”‚   └── screenshots/          # Module 13 β€” Screenshots
β”œβ”€β”€ reports/
β”‚   └── generator.py          # Module 14 β€” Rapports
β”œβ”€β”€ screenshots/              # Captures d'Γ©cran (sortie)
β”œβ”€β”€ logs/                     # Fichiers de log
└── tests/                    # Tests unitaires

πŸ“Š Scoring

Chaque module produit un score de 0 Γ  100. Le score global est une moyenne pondΓ©rΓ©e :

Module Poids
SΓ©curitΓ© 20%
Performance 15%
Backend 15%
API 10%
Frontend 10%
UX 10%
AccessibilitΓ© 5%
SEO 5%
JavaScript 5%
Mobile 5%

Grades

Score Grade
90-100 A 🟒
80-89 B 🟒
70-79 C 🟑
60-69 D 🟠
50-59 E πŸ”΄
0-49 F πŸ”΄

πŸ”’ SΓ©curitΓ©

WebAudit effectue des tests de sΓ©curitΓ© non destructifs :

  • βœ… Lecture seule (pas de modification de donnΓ©es)
  • βœ… Payloads de test inoffensifs
  • βœ… Respect de robots.txt (configurable)
  • ⚠️ Γ€ utiliser uniquement sur vos propres applications
  • ⚠️ Ne pas utiliser sur des systΓ¨mes en production sans autorisation

🀝 Contribution

  1. Fork le projet
  2. CrΓ©er une branche (git checkout -b feature/nouveau-module)
  3. Commit (git commit -m 'Ajout nouveau module')
  4. Push (git push origin feature/nouveau-module)
  5. Pull Request

πŸ“ Licence

MIT License β€” Libre d'utilisation, modification et distribution.


πŸ™ CrΓ©dits

Construit avec :

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors