[demo] loyalty-points-api - seeded from Noodlefishh/Application-Security-Benchmark-Java
# Application Web Vulnérable - Tests de Sécurité Applicative
## ⚠️ AVERTISSEMENT CRITIQUE ⚠️
**Cette application contient intentionnellement des vulnérabilités de sécurité graves.**
- ❌ **NE JAMAIS DÉPLOYER EN PRODUCTION**
- ❌ **NE JAMAIS EXPOSER SUR INTERNET**
- ✅ **Utiliser UNIQUEMENT dans un environnement de test isolé**
- ✅ **Conçue pour tester des outils de sécurité applicative (SAST, DAST, IAST, SCA)**
## Description
Application Java Spring MVC intentionnellement vulnérable qui implémente les 10 principales vulnérabilités du [OWASP Top 10 (2021)](https://owasp.org/Top10/).
## Vulnérabilités Implémentées
### A01:2021 - Broken Access Control
- ✅ Accès non autorisé aux profils utilisateurs
- ✅ Pas de vérification des permissions
- ✅ Exposition de données sensibles
**Endpoints:**
- `GET /user/profile/{userId}` - Voir n'importe quel profil sans autorisation
### A02:2021 - Cryptographic Failures
- ✅ Mots de passe stockés en clair
- ✅ Données sensibles non chiffrées (SSN, cartes de crédit)
- ✅ Pas de hashing des mots de passe
**Endpoints:**
- `GET /user/admin/export` - Export de toutes les données sensibles en clair
### A03:2021 - Injection
- ✅ SQL Injection via paramètres utilisateur
- ✅ SQL Injection via ORDER BY
- ✅ Command Injection
- ✅ Cross-Site Scripting (XSS)
**Endpoints:**
- `GET /user/search?username=` - SQL Injection
- `GET /user/list?sortBy=` - SQL Injection via ORDER BY
- `GET /user/comment?username=&comment=` - XSS Reflected
- `GET /file/convert?filename=` - Command Injection
**Exemples d'exploitation:**
```bash
# SQL Injection
curl "http://localhost:8080/vulnerable-app/user/search?username=' OR '1'='1"
# XSS
curl "http://localhost:8080/vulnerable-app/user/comment?username=test&comment=<script>alert('XSS')</script>"
```
### A04:2021 - Insecure Design
- ✅ XML External Entity (XXE) Injection
- ✅ Parser XML non sécurisé
**Endpoints:**
- `POST /xml/parse` - XXE Injection
**Exemple d'exploitation:**
```bash
curl -X POST http://localhost:8080