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.
| 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) |
- Python 3.10+
- pip
# 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 chromiumpython main.pyUn 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 β
ββββββββββββββββββββββββββββββββββββββββ
# 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 --verboseCrΓ©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"
}
}| 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 |
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
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% |
| Score | Grade |
|---|---|
| 90-100 | A π’ |
| 80-89 | B π’ |
| 70-79 | C π‘ |
| 60-69 | D π |
| 50-59 | E π΄ |
| 0-49 | F π΄ |
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
- Fork le projet
- CrΓ©er une branche (
git checkout -b feature/nouveau-module) - Commit (
git commit -m 'Ajout nouveau module') - Push (
git push origin feature/nouveau-module) - Pull Request
MIT License β Libre d'utilisation, modification et distribution.
Construit avec :
- Playwright β Browser automation
- Rich β Terminal UI
- Pydantic β Data validation
- BeautifulSoup β HTML parsing
- SQLAlchemy β Database inspection
- fpdf2 β PDF generation