# targets.example.env — copiez ce fichier en targets.env et renseignez # vos valeurs. targets.env est ignoré par git (.gitignore) : il ne doit # JAMAIS être committé (il contient votre cible et vos jetons). # # cp targets.example.env targets.env # --- Autorisation (OBLIGATOIRE) ---------------------------------------- # Confirmez que la cible vous appartient et que ce test est autorisé. # Les outils refusent de tourner tant que cette valeur n'est pas "yes". # Voir docs/scope.md pour le périmètre exact. TARGET_SCOPE_ACK="no" # --- Cible ------------------------------------------------------------- # URL de base de la preprod. Tous les outils restent dans ce domaine # (assert_in_scope rejette tout ce qui en dérive). # Preprod Yavsc — host Yavsc.Org (MVC + IdentityServer, porte l'auth). TARGET_BASE_URL="https://preprod-yavsc.pschneider.fr" # Hôtes additionnels du périmètre (séparés par espaces). La preprod # Yavsc est multi-hôtes : # Yavsc.Org → preprod-yavsc.pschneider.fr (auth, MVC) # Yavsc.Api → preprod-api.pschneider.fr (API business, JSON) # Yavsc.Blogs → preprod-blogs.pschneider.fr (blogs + stockage perso) # assert_in_scope autorise ces hôtes en plus de TARGET_BASE_URL. TARGET_ALLOWED_HOSTS="preprod-yavsc.pschneider.fr preprod-api.pschneider.fr preprod-blogs.pschneider.fr" # Timeout curl (secondes) CURL_TIMEOUT=10 CURL_MAX_TIME=30 # Délai entre requêtes (secondes). 0 = aucune pause. Gardez un délai # raisonnable pour ne pas saturer la preprod. REQUEST_DELAY=0.2 # Verbeux : 1 = affiche chaque requête + début du corps VERBOSE=0 # Dossier de sortie (journaux, résultats). Ignoré par git. OUTPUT_DIR="./output" # --- brute-login ------------------------------------------------------- # Endpoint de connexion (relatif à TARGET_BASE_URL ou URL absolue dans # le périmètre). Yavsc.Org expose l'auth via IdentityServer4 — la page # de login MVC (POST /account/login) et le endpoint token OAuth/OIDC # (POST /connect/token). Ciblez le endpoint que vous voulez éprouver. # Exemples : # LOGIN_PATH="/account/login" # formulaire MVC (HTML) # LOGIN_PATH="/connect/token" # token OAuth2 (form-urlencoded) LOGIN_PATH="/connect/token" # Champ du nom d'utilisateur dans le corps JSON de la requête. LOGIN_USER_FIELD="username" # Champ du mot de passe. LOGIN_PASS_FIELD="password" # Utilisateur ciblé (le bruteforceur fait varier le mot de passe). LOGIN_USERNAME="test" # Wordlist de mots de passe (un par ligne). Ne PAS committer la vôtre ; # utilisez le dossier wordlists/ (ignoré) ou un chemin absolu hors dépôt. LOGIN_WORDLIST="./wordlists/passwords.txt" # Nombre maximum de tentatives (0 = illimité, déconseillé). LOGIN_MAX_ATTEMPTS=0 # Indice de succès : code HTTP renvoyé en cas de connexion réussie # (typiquement 200). Les autres codes sont considérés comme échec. LOGIN_SUCCESS_CODE=200 # Type de corps de la requête de connexion : # "json" → application/json (API JSON) # "form" → application/x-www-form-urlencoded (OAuth2 /connect/token, # formulaire MVC) # IdentityServer /connect/token attend "form" avec grant_type=password. LOGIN_CONTENT_TYPE="form" # Pour OAuth2 password grant, le corps form doit inclure grant_type. # Si LOGIN_BODY_FORM est défini, il est utilisé tel quel (placeholders # {{USER}} / {{PASS}}) ; sinon le script construit le form à partir # des champs ci-dessus + grant_type=password. #LOGIN_BODY_FORM='grant_type=password&username={{USER}}&password={{PASS}}&client_id=ro_client&scope=api'