Périmètre

Épreuve OSINT du CTF Deep Threats 2026 (Campus OSINT), scénario entièrement fictif. Les sites d'Hydronix et les documents cités sont créés par l'organisateur dans un périmètre autorisé. Flag masqué.

L'épreuve la plus longue du CTF, et une belle démonstration de la valeur d'un robots.txt. Le raisonnement s'enchaîne sur plusieurs paliers : comparer deux versions d'un site, repérer une indiscrétion de configuration, puis remonter jusqu'à un contrat et l'article recherché.

Objectif

Trouver la clause applicable si un transfert direct de capital ne peut aboutir, sachant qu'elle figure dans un accord stratégique non publié entre Hydronix et AquaVentis.

1 · Deux versions du même site

Hydronix expose son site en deux déclinaisons : une version interne en .ln et une version exposée en .int. La version .int est obsolète (version 12.01) face à la version à jour (13.37). Cet écart de version est le premier indice : ce qui a été corrigé sur l'une reste ouvert sur l'autre.

Comparaison des versions
source hydronix.ln  · footer : v13.37 (à jour)
source hydronix.int · footer : v12.01 (obsolète)
[*] raisonnement : la version obsolète conserve d'anciennes fuites de configuration

2 · L'aveu dans l'offre d'emploi

Une offre d'emploi de Web Security Engineer, présente uniquement sur la version à jour, mentionne des misconfigurations à corriger. Autrement dit, l'entreprise sait que sa vieille version fuit, et cherche à la nettoyer. C'est le signal qu'il faut fouiller la version obsolète avant qu'elle ne soit corrigée.

3 · Le robots.txt qui parle trop

Le robots.txt de la version obsolète liste sept répertoires en Disallow. Un robots.txt n'interdit rien techniquement : il indique aux robots quoi ne pas indexer, et par là même expose l'existence de répertoires que l'on voulait discrets. L'un d'eux est un répertoire de documents.

robots.txt de la version obsolète
$ curl -s https://hydronix.int/robots.txt
User-agent: *
Disallow: /admin/
Disallow: /backup/
Disallow: /documents/ ← répertoire de documents
Disallow: /internal/ … (7 entrées au total)

4 · Les PDF et la clause

Le répertoire /documents/ contient cinq PDF. Parmi eux, l'accord de développement stratégique entre les deux entités. La clause recherchée, celle qui prévoit une structure alternative si le transfert direct de capital ne peut aboutir, se trouve dans un article précis de l'accord.

Extraction de la clause
$ pdftotext -layout accord-strategique.pdf - | grep -n -A2 'transfer'

La réponse attendue est le texte complet de la clause, qui prévoit qu'en cas d'impossibilité de transfert direct du capital, les parties examinent une structure alternative offrant des droits substantiellement équivalents. Le texte exact est masqué. C'est le mécanisme juridique qui rend la captation robuste, détaillé côté propriété dans Poupées russes.

5 · Méthodologie réutilisable

Méthodologie réutilisable
  • Chercher les doublons de version. Environnements de staging, sous-domaines obsolètes, miroirs : une même application dans deux états expose souvent, sur le plus ancien, ce qui a été corrigé sur l'autre.
  • Un numéro de version en pied de page est une donnée de recon. L'écart entre deux versions oriente vers la plus vulnérable.
  • robots.txt est un index de ce qu'on voulait cacher. Chaque Disallow nomme un répertoire ; le lire en premier réflexe sur toute recon web.
  • Les offres d'emploi trahissent l'état de sécurité. Une annonce de Security Engineer listant des misconfigurations à corriger confirme l'existence des failles à chercher.
  • Toujours extraire le texte des PDF. pdftotext -layout évite les erreurs de recopie sur une clause exacte attendue au mot près.
OPSEC

Toute la démarche porte sur des ressources publiques du CTF. Hors périmètre, l'accès à un répertoire listé en Disallow mais non protégé reste juridiquement risqué selon les juridictions : un robots.txt n'est pas une autorisation d'accès.