74 lines
No EOL
3.5 KiB
Bash
74 lines
No EOL
3.5 KiB
Bash
# 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' |