L'apprentissage rencontre le plaisir au SANS Holiday Hack Challenge 2022 - attachez-vous pour une balade en crackerjack au pôle Nord pendant que je déjoue le plan déloyal de Grinchum et récupère les cinq anneaux d'or
C'est ma première année de participation au Défi de piratage des fêtes SANS Et c'était une explosion. À travers une série de 16 défis allant de facile à difficile, je me suis entraîné à analyser le trafic réseau suspect et les journaux PowerShell, à écrire Règles de la suricate, sortir d'un Conteneur Docker, trouver des clés divulguées pour exploiter un Pipeline CI/CD GitLab et le Utilisateur AWS, conduisant Attaques d'entités externes XML, et pirater un contrat intelligent pour acheter un jeton non fongible.
La meilleure partie de cette expérience est qu'elle m'a fait découvrir de nouveaux outils et technologies, étendant ainsi encore plus mes connaissances en cybersécurité. Ici, je partage quelques points saillants de la résolution des défis.
Orientation
Chaque participant reçoit un avatar pour naviguer dans un environnement de jeu vidéo intégré au pôle Nord :
Pendant l'orientation, vous recevez un portefeuille de crypto-monnaie que le jeu utilise pour attribuer des KringleCoins pour avoir relevé des défis et que vous utilisez dans le dernier défi pour pirater un contrat intelligent. Fait intéressant, le jeu garde une trace de toutes les transactions KringleCoin dans une blockchain Ethereum, ce qui signifie qu'un enregistrement complet de votre progression est également stocké dans cette blockchain.
Au premier anneau du jeu.
1. Anneau de Tolkien
Pour trouver l'anneau de Tolkien, il a fallu faire travailler mes muscles d'analyse des journaux.
Hameçonnage Wireshark
Tout d'abord, j'ai utilisé Wireshark pour analyser le .pcap fichier qui a révélé un serveur à adv.epostoday[.]uk téléchargement du fichier Réf_24septembre-2020.zip à un ordinateur :
En regardant à l'intérieur du fichier ZIP, j'ai trouvé un exécutable appelé Réf_24Sept-2020.scr qui a déclenché deux détections dans ESET Endpoint Security : BAT/Runner.ES ainsi que Generik.TAGTBG. Ce logiciel malveillant a finalement conduit à un exécutable malveillant s'exécutant en mémoire appelé config.dll et détecté par ESET Analyseur de mémoire avancé as Win32/Dridex.DD.
Journaux d'événements Windows
Ensuite, j'ai analysé les informations fournies .evtx fichier contenant les journaux PowerShell avec l'Observateur d'événements. Bien qu'il existe d'autres outils pour analyser les journaux PowerShell, si les attaquants savent comment utiliser des binaires vivant hors du terrain pour rester sous le radar, les défenseurs doivent également bien connaître les outils natifs fournis par un système d'exploitation.
Étant donné que les journaux contenaient 10,434 XNUMX événements, j'ai regroupé les événements par date, puis j'ai exécuté l'action Rechercher pour rechercher tous les événements contenant le $ personnage. Dans PowerShell, $ est utilisé pour créer et référencer les variables. J'ai découvert qu'une attaque se produisait le 24 décembre 2022, lorsque l'attaquant a exécuté le script suivant :
Il semble que l'agresseur ait trouvé une recette secrète, éteint l'ingrédient secret de miel en l'huile de poisson, puis créé un nouveau fichier de recette. Cela a déclenché un événement avec un ID de 4104, qui représente l'exécution de commandes PowerShell à distance. J'ai donc filtré les événements par cet ID, ce qui m'a aidé à trouver plus rapidement d'autres événements malveillants.
Régate de Suricata
Le dernier exercice pour le Tolkien Ring consistait à écrire quatre règles Suricata pour surveiller le trafic réseau en cas d'infestation de Dridex :
alert dns $HOME_NET any -> any any (msg :"Mauvaise recherche DNS connue, infection Dridex possible" ; dns.query ; content :"adv.epostoday.uk" ; nocase ; sid:1; rev:1 ;)
alert http 192.185.57.242 any <> any any (msg:"Investigate suspect connections, possible Dridex infection"; sid:2; rev:1;)
alert tls any any -> any any (msg :"Investigate bad certificates, possible Dridex infection" ; tls.cert_subject; content:"CN=heardbellith.Icanwepeh.nagoya"; sid:3; rev:1;)
alert http any any -> any any (msg:"Fonction Javascript suspecte, possible infection Dridex"; file_data; content:"let byteCharacters = atob"; sid:4; rev:1;)
Dans l'ordre, ces règles interceptent les recherches DNS pour adv.epostoday[.]uk, connexions à l'adresse IP 192.185.57[.]242, l'utilisation du serveur malveillant entendubellith.Icanwepeh[.]nagoya identifié par le nom commun (CN) dans un certificat TLS, et l'utilisation de JavaScript a à B() pour décoder une chaîne binaire contenant des données encodées en base64 sur le client.
Relever ces trois défis m'a valu le Tolkien Ring :
Passons au deuxième anneau.
2. Anneau des Elfes
Les défis les plus importants pour le Elfen Ring étaient Prison Escape et Jolly CI / CD.
Prison Escape
Prison Escape était un rappel sévère que l'octroi de privilèges root à un utilisateur dans un conteneur Docker est tout aussi efficace que l'octroi de privilèges root sur le système hôte. Le défi consistait à sortir du conteneur. Eh bien, facilement fait lorsque vous êtes root:
En tant qu'utilisateur root, j'ai répertorié les tables de partition du périphérique, puis j'ai monté le système de fichiers hôte, m'accordant un accès complet à l'hôte. Maintenant, je pouvais rechercher la clé, qui devrait se trouver dans le répertoire personnel, comme le révèlent les astuces du jeu :
Joyeux CI/CD
Bien que cela ait été rapide, Jolly CI / CD m'a pris le plus de temps à résoudre. Tout d'abord, on nous a donné un référentiel Git à cloner via HTTP :
À partir de l'URL, j'ai pu voir que le nom du référentiel était wordpress.flag.net.interne, j'ai donc déménagé dans le référentiel et trouvé un site Web WordPress. J'ai vérifié si le site Web était en ligne :
Oui, le site Web était fonctionnel. J'étais curieux de savoir s'il y avait des clés divulguées dans l'historique du code source. Si oui, je devrais être en mesure d'apporter des modifications au code source. Alors j'ai couru gitlog:
D'après les messages de validation, cela ressemble à un commettre a été faite après avoir ajouté des actifs pour corriger un whoops. Il est temps de vérifier le commit pré-whoops :
Excellent, j'ai trouvé un .ssh répertoire avec des clés. Copions ces clés et configurons un agent SSH et un utilisateur Git pour voir si je peux usurper l'identité du propriétaire de ces clés :
Revenons maintenant à la branche principale et testons si nous pouvons apporter une modification triviale au code source (en utilisant nano, j'ai simplement ajouté un espace à l'un des fichiers) :
J'ai donc réussi la première partie du défi en me faisant passer pour l'un des développeurs WordPress, mais le site Web fonctionnait-il toujours après ma poussée ?
Ma poussée a changé quelque chose car maintenant le site Web est redirigé vers le port 8080.
Jusqu'à présent, j'avais ignoré la partie CI / CD du défi, qui devrait être la clé pour le terminer. Le référentiel contient un .gitlab-ci.yml fichier, qui fournit la configuration d'un pipeline GitLab CI/CD. Chaque fois que vous poussez vers le référentiel, le système CI/CD démarre et un Exécuteur GitLab exécute les scripts dans ce fichier YML. C'est aussi bon que de réaliser l'exécution de code à distance sur le serveur où GitLab Runner est installé, pensai-je.
En regardant de plus près, j'ai vu un rsync script copiant tous les fichiers du référentiel Git dans le répertoire du serveur Web à partir duquel le site Web était servi. Au début, j'ai essayé d'utiliser rsync pour inverser le flux de données en copiant tous les fichiers du serveur Web vers le référentiel Git, mais sans succès.
Après de nombreux tests d'hypothèses, j'ai finalement eu un aperçu décisif : au lieu d'essayer de "réparer" le site Web WordPress ou d'exécuter des scripts malveillants via le système de construction, servez un site Web qui divulgue des informations à partir du serveur Web. À l'intérieur index.php (situé au niveau supérieur du référentiel), je peux commenter le code qui charge le site Web WordPress et exécuter des commandes PHP qui sondent le serveur Web.
En effet, je peux même exécuter des commandes shell avec PHP. Je l'ai trouvé passer à travers() travaillé facilement.
In index.php, J'ai utilisé // pour commenter deux lignes et j'ai ajouté passthru('ls -la /'); sur la dernière ligne. Cela crée un site Web qui répertorie tous les fichiers dans le répertoire racine du serveur Web :
Ensuite, j'ai poussé ce changement vers le référentiel Git et le système GitLab CI/CD s'est chargé de mettre à jour le site Web pour moi :
Ah, l'Elfen Ring doit être dans drapeau.txt! J'ai répété les étapes précédentes, mais cette fois en utilisant passthru('cat /flag.txt'); révélant l'Elfen Ring la prochaine fois que j'ai demandé le site Web :
Passons au troisième anneau.
3. Anneau Web
Le défi le plus amusant pour moi était Open Boria Mine Door, bien que la fontaine de Glamtariel était intéressante tout en présentant des énigmes.
Ouvrir la porte de la mine Boria
Dans Open Boria Mine Door, on nous a présenté six épingles ou mini-défis pour contourner la validation des entrées ou un Politique de sécurité du contenu pour connecter les tuyaux d'entrée et de sortie entre les broches, y compris en faisant correspondre les couleurs des tuyaux. Pour la plupart des épingles, j'ai utilisé HTML pour écrire une liste de lettres de connexion 'o'. Voici ma solution finale :
Broche 1
Il n'y avait pas de validation pour la broche 1, c'était donc une simple question de HTML et de CSS en ligne :
<p style=“letter-spacing: -4px; margin: 0; padding: 0;”>oooooooooooooo</p> |
Broche 2
La broche 2 avait une politique de sécurité du contenu qui interdisait JavaScript mais autorisait le CSS en ligne, donc ce n'était pas un problème pour ma méthode :
1 2 3 4 5 6 7 8 9 10 11 12 |
<ul style=“list-style: none; line-height:0.5; letter-spacing: -4px; margin: 0; padding: 0;”> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>oooooooooooooo</li> </ul> |
Broche 3
La broche 3 avait une politique de sécurité du contenu qui interdisait le CSS mais autorisait le JavaScript en ligne, j'ai donc utilisé JavaScript pour modifier les styles à la place :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<script> document.write(“” + “<ul id=’o’>” + “<li>o</li>” + “<li>oooooooooooooooooooooo</li>” + “<li>o</li><li>o</li><li>o</li><li>o</li>” + “</ul>”); const o = document.getElementById(‘o’); o.style.color = “blue”; o.style.listStyle = “none”; o.style.lineHeight = “0.5”; o.style.letterSpacing = “-4px”; o.style.margin = “0”; o.style.padding = “0”; </script> |
Broche 4
La broche 4 n'avait pas de politique de sécurité du contenu, mais elle avait une fonction sanitizeInput côté client qui supprimait les guillemets doubles, les guillemets simples, les crochets angulaires gauches et les crochets angulaires droits. L'astuce ici était de réaliser que cette fonction n'était pas déclenchée par la soumission du formulaire, mais par le le flou un événement. En d'autres termes, éloigner la souris du champ de saisie déclenchait le le flou événement, assainissant toute entrée. La solution était de soumettre le formulaire en appuyant sur le Entrer en prenant soin de ne pas déplacer le curseur de la souris en dehors des limites du champ de saisie :
1 2 3 4 5 6 7 8 9 10 11 |
<ul style=“list-style: none; line-height:0.5; letter-spacing: -4px; margin: 0; padding: 0;”> <li>o</li> <li>o</li> <li>oooooooooooooo</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li style=“color: blue;”>oooooooooooooo</li> </ul> |
Broche 5
La broche 5 avait le même désinfecterEntrée fonction et contournement avec une politique de sécurité du contenu interdisant le CSS en ligne, mais autorisant le JavaScript en ligne :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<script> document.write(“” + “<ul id=’o’>” + “<li>o</li>” + “<li>o</li>” + “<li class=’red’>oooooooooooooo</li>” + “<li><span class=’red’>o</span></li>” + “<li><span class=’red’>o</span></li>” + “<li><span class=’red’>o</span>” + “<span class=’blue’> ooooooooooo</span></li>” + “<li><span class=’red’>o</span>” + “<span class=’blue’> oo</span></li>” + “<li><span class=’red’>o</span>” + “<span class=’blue’> oo</span></li>” + “<li><span class=’red’>o</span>” + “<span class=’blue’> oo</span></li>” + “<li>o<span class=’blue’> oo</span></li>” + “<li>o<span class=’blue’> B</span></li>” + “</ul>”); const o = document.getElementById(‘o’); o.style.listStyle = “none”; o.style.lineHeight = “0.5”; o.style.letterSpacing = “-4px”; o.style.margin = “0”; o.style.padding = “0”; o.style.fontSize = “xx-large”; const reds = document.getElementsByClassName(“red”); for (let red of reds) { red.style.color = “red”; } const blues = document.getElementsByClassName(“blue”); for (let blue of blues) { blue.style.color = “blue”; } </script> |
Broche 6
Enfin, la broche 6 n'a pas nettoyé l'entrée, mais elle a utilisé une politique de sécurité du contenu plus stricte interdisant à la fois le CSS et le JavaScript en ligne. Ma solution consistait à utiliser du code HTML obsolète pour obtenir les styles dont j'avais besoin et à utiliser un tableau au lieu d'une liste :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<table border=“0” frame=“void” rules=“none” cellpadding=“0” cellspacing=“0” width=“100%”> <tr bgcolor=“#00FF00”> <td><font color=“#00FF00” size=“7”>o</font></td> <td><font color=“#00FF00” size=“7”>o</font></td> <td><font color=“#00FF00” size=“7”>o</font></td> <td><font color=“#00FF00” size=“7”>o</font></td> </tr> <tr bgcolor=“red”> <td><font color=“red” size=“5”>o</font></td> <td><font color=“red” size=“5”>o</font></td> <td><font color=“red” size=“5”>o</font></td> <td><font color=“red” size=“5”>o</font></td> </tr> <tr bgcolor=“blue”> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> <td bgcolor=“red”><font color=“red” size=“9”>o</font></td> </tr> <tr bgcolor=“blue”> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> </tr> </table> |
Fontaine de Glamtariel
Fontaine de Glamtariel a été l'occasion de pratiquer Attaques d'entités externes XML (XXE). Comprendre comment définir une entité XML personnalisée, définir une entité qui demande un fichier au serveur et ajouter cette entité en tant que charge utile à une requête HTTP n'était pas difficile. La partie la plus difficile a été de résoudre les énigmes du jeu pour deviner le chemin vers les fichiers que le serveur fuirait. Voici la demande révolutionnaire révélant l'emplacement de l'anneau en or :
Je proposerais deux leçons tirées de ce défi. Tout d'abord, utilisez le Convertisseur de type de contenu prolongation dans Rot pour convertir les charges utiles JSON en XML. Deuxièmement, essayez de placer la charge utile XXE dans différentes balises - il m'a fallu beaucoup de temps pour comprendre que tout ce que j'avais à faire était de placer le &xx; charge utile dans le Type de demande balise au lieu de la imgDrop Étiquette.
Passons à la quatrième sonnerie.
4. Anneau de nuage
Jouer pour le Cloud Ring était l'incursion d'un débutant dans l'interface de ligne de commande (CLI) d'Amazon Web Services (AWS).
Le point culminant de cet ensemble de défis consistait à utiliser truffier pour trouver les informations d'identification AWS dans un référentiel Git, puis les exploiter pour s'authentifier en tant qu'utilisateur AWS. Un attaquant qui arrive à cette position peut utiliser aws je suis commandes pour interroger les politiques qui s'appliquent à l'utilisateur, et donc quels actifs cloud peuvent être consultés et abusés.
Au cinquième anneau.
5. Anneau de feu brûlant
La partie la plus instructive de cet ensemble de défis a été d'apprendre Arbres Merkle pour exploiter un contrat intelligent et inscrivez-vous sur la liste de prévente pour l'achat d'un jeton non fongible (NFT). Ici, le défi était de découvrir les valeurs de preuve qui, avec l'adresse de mon portefeuille et la valeur racine d'un arbre Merkle, prouvaient mon inclusion sur la liste de prévente.
Après quelques tentatives infructueuses pour fournir des valeurs de preuve, j'ai réalisé que je ne serais jamais capable de déterminer les valeurs de preuve pour la valeur racine fournie car il n'y avait aucun moyen de connaître toutes les valeurs de feuille utilisées pour la calculer. J'avais besoin de changer la valeur racine pour pouvoir fournir un arbre Merkle valide.
En utilisant L'outil du professeur QPetabyte, j'ai créé un Merkle Tree à partir de deux feuilles composées de l'adresse de mon portefeuille et de l'adresse du BSRS_nft contrat intelligent, que j'ai trouvé en utilisant le Blockchain Explorer dans le jeu dans le bloc deux de la blockchain Ethereum du jeu. L'outil a généré la valeur racine de cet arbre et la valeur de preuve pour mon adresse de portefeuille. Ensuite, j'ai utilisé Burp pour intercepter la demande au serveur et modifié la valeur racine par défaut afin de pouvoir soumettre un arbre Merkle valide. Voici mon NFT sport acheté au prix fixe de 100 KringleCoins :
Un vilain spécimen en effet.
Finale
Un grand merci aux organisateurs du SANS Holiday Hack Challenge pour avoir élargi mon esprit de nouvelles façons et aidé à approfondir mes connaissances en cybersécurité. Non seulement j'ai hâte de relever le défi de l'année prochaine, mais je vais même essayer les éditions 2020 et 2021 de ce défi. Et si vous n'avez jamais participé à ce défi auparavant, j'espère que ces faits saillants ont piqué votre intérêt.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://www.welivesecurity.com/2023/01/09/cracked-it-highlights-kringlecon-5-golden-rings/
- 1
- 10
- 100
- 11
- 202
- 2020
- 2021
- 2022
- 7
- 9
- a
- Capable
- À propos
- accès
- accédé
- atteint
- la réalisation de
- Action
- ajoutée
- Supplémentaire
- propos
- Après
- Agent
- Tous
- Permettre
- Bien que
- Amazon
- Amazon Web Services
- Amazon Web Services (AWS)
- selon une analyse de l’Université de Princeton
- il analyse
- l'analyse
- ainsi que
- Appliquer
- Outils
- attaquer
- Tentatives
- authentifier
- Avatar
- prix
- AWS
- Mal
- car
- before
- va
- LES MEILLEURS
- jusqu'à XNUMX fois
- Big
- Block
- blockchain
- Bleu
- acheté
- Branche
- Pause
- sortir
- Rupture
- percée
- construire
- acheter
- appelé
- les soins
- Attraper
- certificat
- certificats
- challenge
- globaux
- Change
- caractère
- vérifier
- client
- plus
- le cloud
- code
- Couleur
- commentaire
- commettre
- Commun
- complet
- compléter
- ordinateur
- conduite
- configuration
- NOUS CONTACTER
- Connecter les
- Connexions
- Qui consiste
- Contenant
- contient
- contenu
- contrat
- convertir
- copier
- pourriez
- engendrent
- créée
- crée des
- Lettres de créance
- crypto-monnaie
- Portefeuille Crypto-monnaie
- CSS
- curieux
- Customiser
- Cybersécurité
- données
- Date
- Décembre
- Approfondir
- Réglage par défaut
- défenseurs
- définir
- détecté
- mobiles
- dispositif
- DID
- J'ai noté la
- différent
- difficile
- découvrez
- dns
- Docker
- document
- Porte
- double
- Notre expertise
- même
- Endpoint
- Endpoint Security
- entité
- entrée
- Environment
- Ethereum
- Blockhaus d'Ethereum
- Pourtant, la
- événement
- événements
- faire une éventuelle
- Exécute
- exécution
- Exercises
- Sortie
- Découvrez
- Exploiter
- explorateur
- extension
- externe
- few
- champ
- Figure
- Déposez votre dernière attestation
- Fichiers
- finale
- Trouvez
- trouver
- Prénom
- Fixer
- fixé
- flux
- feuille
- Abonnement
- Incursion
- formulaire
- le format
- Avant
- trouvé
- fontaine
- Quatrièmement
- de
- plein
- amusement
- fonction
- fonctionnel
- plus
- jeu
- Games
- généré
- obtenez
- gif
- Git
- GitHub
- donné
- Or
- Or
- Bien
- octroi
- entaille
- piratage
- Dur
- aider
- ici
- Cacher
- Souligner
- Faits saillants
- indices
- Histoire
- Idées
- Accueil
- d'espérance
- hôte
- Comment
- How To
- HTML
- HTTPS
- identifié
- in
- Dans d'autres
- dans le jeu
- Y compris
- inclusion
- d'information
- contribution
- perspicacité
- plutôt ;
- intérêt
- intéressant
- Interfaces
- introduit
- IP
- IP dédiée
- IT
- JavaScript
- json
- clés / KEY :
- clés
- Kicks
- Savoir
- spécialisées
- Nom de famille
- conduire
- fuite
- Fuites
- savant
- apprentissage
- Cours
- Leçons apprises
- lettre
- Niveau
- Li
- Gamme
- lignes
- Liste
- Listé
- Liste
- le travail
- charges
- situé
- emplacement
- Location
- Longtemps
- Style
- recherchez-
- LOOKS
- rechercher
- Lot
- LES PLANTES
- Entrée
- malware
- Marge
- assorti
- Matière
- largeur maximale
- sens
- Se rencontre
- Mémoire
- messages
- méthode
- Microsoft
- l'esprit
- Surveiller
- PLUS
- (en fait, presque toutes)
- Bougez
- en mouvement
- Mozilla
- prénom
- nano
- indigène
- NAVIGUER
- net
- réseau et
- trafic réseau
- Nouveauté
- next
- NFT
- non fongible
- jeton non fongible
- Nord
- code
- ONE
- ouvert
- d'exploitation
- le système d'exploitation
- Opportunités
- de commander
- les organisateurs
- Autre
- au contrôle
- propriétaire
- partie
- participé
- participant
- chemin
- PHP
- broches
- pipe
- pipeline
- Place
- placement
- plan
- Platon
- Intelligence des données Platon
- PlatonDonnées
- politiques
- politique
- position
- possible
- PowerShell
- pratique
- Pré-vente
- présenté
- précédent
- prix
- prison
- privilèges
- sonde
- Problème
- Progrès
- important
- preuve
- prouvé
- fournir
- à condition de
- fournit
- achat
- Push
- Poussé
- Rapide
- vite.
- radar
- allant
- réaliser
- réalisé
- recevoir
- reçoit
- recette
- record
- Récupérer
- Rouge
- éloigné
- répété
- dépôt
- nécessaire
- demandes
- conditions
- retourner
- Révélé
- révélateur
- inverser
- Rouler
- Bagues
- racine
- Courir
- coureur
- pour le running
- scripts
- Rechercher
- Deuxièmement
- secondes
- secret
- sécurité
- Série
- besoin
- Services
- set
- Partager
- coquillage
- devrait
- côté
- étapes
- simplement
- unique
- SIX
- smart
- contrat intelligent
- So
- Doux / Pastel
- sur mesure
- Résoudre
- quelque chose
- Identifier
- code source
- Space
- peuplements
- rester
- Étapes
- Encore
- stockée
- plus strict
- Catégorie
- soumettre
- succès
- soupçonneux
- commuté
- syntaxe
- combustion propre
- table
- TAG
- prise
- TD
- Les technologies
- tester
- Essais
- La
- La Source
- Troisièmement
- pensée
- trois
- Avec
- fiable
- à
- jeton
- trop
- outil
- les outils
- top
- suivre
- circulation
- Transactions
- déclenché
- sous
- la mise à jour
- URL
- utilisé
- Utilisateur
- validation
- Plus-value
- Valeurs
- via
- Vidéo
- jeu vidéo
- Wallet
- façons
- web
- le serveur web
- services Web
- Site Web
- qui
- tout en
- large
- sera
- sans
- Outils de gestion
- des mots
- Activités:
- travaillé
- pourra
- écrire
- écriture
- XML
- an
- Vous
- Votre
- vous-même
- zéphyrnet
- Zip