Aller au contenu

Challenge Arcade Paradise

Difficulté : Medium/High

Bienvenue dans Arcade Paradise, une boutique en ligne fictive spécialisée dans la vente de produits rétro et d'arcade. Malheureusement pour Arcade Paradise, son site web est truffé de failles de sécurité issues du Top 10 OWASP, et bien d'autres... Votre mission est de découvrir et d'exploiter ces vulnérabilités pour trouver les flags cachés sur le site.

Scénario

Le site web d'Arcade Paradise a été conçu par un développeur novice (stagiaire), ce qui le rend vulnérable à de nombreuses attaques. Il propose les fonctionnalités suivantes :

  • Un système de connexion.
  • Un formulaire de recherche pour trouver des produits.
  • Un formulaire de demande de remboursement.
  • Un formulaire de paiement.
  • Une page de panier d'achat.
  • Une section d'administration mal protégée.
  • Utilisation d'Ajax.
  • Des identifiants et mots de passe de test laissés actifs.

Les flags sont cachés dans les réponses des serveurs, les bases de données ou dans des fonctionnalités détournées. Chaque flag correspond à une faille de sécurité exploitable.

De plus, le site marchand utilise une API FastAPI via une source publique (CV LinkedIn) pour récupérer les produits en stock.

Environnement

Ecrire le docker-compose.yml :

services:
  web-server:

    image: inuya22/arcade-paradise-web:1.0

    depends_on:
      - api-server
      - api-token-server
      - api-secret

    ports:
      - 8089:8089

  api-server:

    image: inuya22/arcade-paradise-api:1.0

    depends_on:
      - db-server

  api-token-server:
    image: inuya22/arcade-paradise-api-token:1.0

    depends_on:
      - db-server

  api-secret:

    image: inuya22/arcade-paradise-api-secret:1.0

  db-server:

    image: inuya22/arcade-paradise-bdd:1.0

Lancer les containers : docker compose up

  1. Le site web est accessible via : http://localhost:8089
  2. Chaque flag est au format : FMCTF{HELLO_WORLD} (FLAG d'exemple).
  3. Le nombre de flags et de 7

Message du créateur : Si vous avez accès au code source du site via une méthode conventionnelle ou non, les flags sont offusqués et chiffrés avec ed25519. Bon courage pour essayer de les déchiffrer ! Et si vous trouvez un moyen de les déchiffrer… passez au challenge suivant !

Les URL des API non publiques découvertes (suite à une fuite de dépôt du code source des API) avec une première analyse :

  • http://api-server : Microservice API REST utilise la base de données des produits.
  • http://api-token-server : Microservice pour récupérer un token (JWT - Grafikart).
  • http://api-secret : Microservice qui effectue des opérations de chiffrement ou déchiffrement. L'équipe n'a pas trouvé de clés de chiffrement/déchiffrement dans le code source.

  • Une route API utile à tester /flag

Le stagiaire, faute de temps, n'a pas migré l'ensemble du site vers l'utilisation de l'API. Il reste une dépendance avec une base de données SQL.

La base de donnée de production et celle du poste de developpeur (exploiter la nomenclature pour l'email admin).

Email: test@test.fr

Password:

Observe le code source HTML,JavaScript...

Points Bonus

Un easter egg est caché dans le site. Combinez une autre faille pour découvrir son contenu.