MySelf·Lab démo · noindex

🎯 Test red team — règles d'engagement

MySelf-Lab est une vitrine volontairement exposée à l'attaque. Inversion d'OWASP Juice Shop : ici l'application est protégée par l'écosystème MySelf (SelfRecover, SelfDataGuard, SelfModerate) et l'objectif est de prouver — ou de mettre en défaut — cette protection en conditions réelles. Toute personne respectant les règles ci-dessous est autorisée à mener ses recherches.

📊 Le lab en chiffres

23jours en ligne
1tentatives d'authentification repoussées
1rapports reçus
0flag capturé

Agrégé depuis les données déjà collectées par le lab — aucune mesure d'audience, aucun cookie de suivi, aucune adresse conservée.

📍 Périmètre

✅ Dans le périmètre

  • L'application web MySelf-Lab (ce site) et tous ses chemins
  • L'authentification SelfRecover (inscription, connexion, récupération)
  • Les messages privés et profils chiffrés SelfDataGuard
  • La réputation et le vote SelfModerate
  • Le formulaire de soumission de rapport ci-dessous

⛔ Hors périmètre

  • Toute autre infrastructure, domaine ou service que ce site
  • Le service SSH du serveur (port 22) — une tentative d'authentification y déclenche un blocage au niveau réseau qui te couperait aussi l'accès à ce site
  • L'hébergeur, le registrar, les fournisseurs tiers
  • Les comptes ou données de personnes réelles
  • Le poste, les comptes et la messagerie du mainteneur

Un périmètre étendu (autres composants MySelf) peut être convenu en privé avec une équipe retenue, sous accord écrit. Il n'est pas publié ici.

🏁 Objectifs (capture-the-flag)

Saison 2 — deux drapeaux, dans deux comptes de démonstration :

FLAG-E2E-… dans le mémo personnel de ctf_alpha — chiffré dans le navigateur (Argon2id → HKDF → AES-256-GCM), clé jamais présente sur le serveur.
FLAG-DM-… dans un message privé de ctf_beta à ctf_gamma — chiffré au repos côté serveur par SelfDataGuard (XChaCha20-Poly1305), avec une clé tenue hors de la base.

FLAG-E2E : ni un dump de la base, ni un accès administrateur ne le révèlent — la clé ne se forme que dans le navigateur de son propriétaire. La prise de contrôle du serveur, elle, en vient à bout : c'est ce serveur qui sert le script de dérivation, et qui le contrôle peut en servir un autre, qui récolte la clé à la prochaine ouverture. « De bout en bout » vaut donc tant que le serveur sert le code publié. FLAG-DM : un dump seul ne suffit pas, mais la clé serveur (.blindkey) le fait tomber — c'est la limite assumée du chiffrement côté serveur. Le défi est de ramener l'un ou l'autre en clair.

Réfs MITRE ATT&CK / OWASP indiquées par objectif (les vulns web applicatives relèvent d'OWASP/CWE, hors périmètre ATT&CK).

✅ Autorisé

  • Tests applicatifs web : injection (SQL, commande), XSS, IDOR, contournement d'auth, logique métier
  • Analyse cryptographique des blobs SelfDataGuard
  • Tentatives de dump de la base via une faille applicative
  • Fuzzing raisonné des endpoints
  • Interception / rejeu dans le périmètre

⛔ Interdit

  • Déni de service, flood, stress volumétrique (DoS / DDoS)
  • Ingénierie sociale visant des personnes réelles, le mainteneur, l'hébergeur
  • Attaques physiques ou sur des locaux
  • Pivot ou scan hors du périmètre déclaré
  • Destruction, chiffrement (ransomware) ou altération définitive de données
  • Exfiltration massive au-delà de la preuve ; spam ; contenu illégal

⏱️ Note technique — limitation de débit

Les points d'authentification (/api/login.php, /api/register.php) sont lissés à 10 requêtes par seconde, avec une tolérance de 20 en rafale.

Un code 429 signale ce lissage — ou le verrouillage anti-brute-force du compte. Ce n'est pas un déni de service que tu aurais provoqué, et il est inutile de le rapporter comme tel.

Un fuzzing raisonné n'est pas affecté : seules les requêtes massivement parallèles le sont. Aucun bannissement n'est appliqué — sur ce serveur, scanner fait partie du jeu.

📐 Limites connues et assumées

Ce qui suit est déjà établi, et publié pour que tu n'y perdes pas ton temps : une limite documentée n'est pas un finding. La dépasser en est un : une prise concrète sur l'une de ces bornes, pas l'argument qu'elle existe.

🧭 Conduite responsable

🛟 Safe harbor

Tant que tes recherches respectent ces règles, nous les considérons comme autorisées et menées de bonne foi. Nous n'engagerons aucune action à ton encontre et nous ferons notre possible pour lever rapidement toute incertitude. En cas de doute sur le périmètre ou une technique : demande avant d'agir via le formulaire ci-dessous.

📨 Soumettre un rapport

🔒 Le corps de ton rapport est chiffré dans ton navigateur, en PGP, vers la clé publique du programme, avant l'envoi : le serveur ne stocke qu'un message qu'il ne sait pas lire.

🌐 Ces règles existent en français et en anglais. En cas de divergence entre les versions, le texte français fait foi.

🚩 Drapeaux — validation immédiate

Tu as sorti un drapeau ? Colle-le ici : la réponse est immédiate. Le pseudo est libre et facultatif — ce qui compte, c'est l'ordre d'arrivée.

FLAG-DM personne ne l'a encore sorti 0 capture(s)
FLAG-E2E personne ne l'a encore sorti 0 capture(s)

📬 Suivre un signalement

Le numéro et le jeton rendus au dépôt de ton rapport donnent son état. Le rapport lui-même reste illisible pour le serveur : il est chiffré pour une seule clé.

🏆 Hall of fame

Aucune contribution validée pour l'instant. Sois la première personne à y figurer.