
Un atelier étape par étape pour exploiter diverses vulnérabilités dans des applications Node.js et Java
Dans cet atelier pas à pas, vous apprendrez à exploiter diverses vulnérabilités réelles existant dans des versions vulnérables de packages d'une application Node.js et Java.
Vous pouvez suivre cet atelier de 2 manières différentes
OU
Cet atelier vous guidera à travers l'installation et l'exploitation de plusieurs applications volontairement vulnérables. Les applications utiliseront des packages réels avec des vulnérabilités connues, notamment :
Ces exploits existent dans un certain nombre d'applications, dont la plupart devront être installées localement ou sur une instance cloud. Les instructions ci-dessous vous guideront pour les installations locales, mais vous êtes libre de les essayer également sur des instances cloud distantes.
Pour chaque section de vulnérabilité de cet atelier, vous recevrez des informations sur la vulnérabilité ainsi que sur le package dans lequel elle se trouve. Nous vous encourageons à tenter de pirater l'application par essais et erreurs sans lire les indices au début. Essayez de réfléchir à la façon dont vous pouvez contourner l'assainissement de l'application et entrez dans l'esprit d'un pirate. Les indices sont là pour le moment où vous êtes bloqué, alors lisez-les dans l'ordre lorsque vous avez besoin d'un coup de main. Si vous parvenez à terminer le piratage sans indices, c'est génial ! Cependant, il peut être bon de lire les indices après pour être sûr d'avoir pénétré de la même manière que nous ! De plus, il peut y avoir de petits conseils à en tirer.
Selon votre choix précédent, choisissez le manuel d'installation approprié
Depuis votre navigateur préféré, accédez à http://localhost:3001 et vous devriez voir la page suivante.

Prenez quelques minutes pour jouer avec le site, et en particulier, créez quelques tâches, en utilisant du texte normal « Acheter du lait » ainsi qu'en utilisant du markdown « Acheter **beaucoup** de lait ». Naviguez également vers la page à propos très modeste liée en bas de la page d'accueil. Régalez-vous du CSS-foo utilisé pour créer cette page à propos. Remarque : les PR qui rendent cette page plus jolie ne seront pas fusionnées ;o)

Tout d'abord, regardons cela du côté bleu (défensif). Forkez l'application goof vers votre propre compte GitHub. L'application se trouve sur GitHub ici : https://github.com/snyk/goof. Nous devons analyser notre application pour comprendre les dépendances directes et indirectes qui existent dans l'application, ainsi que les vulnérabilités de chaque bibliothèque. Pour ce faire, accédez à https://snyk.io et cliquez sur « S'inscrire » ou « Connexion » (si vous êtes déjà utilisateur), en haut à droite du site :

Cliquez sur le bouton « Se connecter avec GitHub » :

Ensuite, importez le projet goof que vous venez de cloner précédemment. Sélectionnez goof dans votre liste de dépôts GitHub et cliquez sur le bouton « Importer des projets » en haut à droite de la fenêtre.

Lorsque le projet aura été analysé, vous le verrez dans votre tableau de bord :

Cliquez sur le lien package.json pour voir la page du projet, qui comprend la liste complète des vulnérabilités de sécurité :

Vous pouvez cliquer sur les onglets « Issues » et « Dependencies » pour voir plus d'informations sur les vulnérabilités et leur correction, ainsi que sur l'endroit où elles sont introduites par votre application. Vous remarquerez vers le bas de la liste des vulnérabilités une vulnérabilité de directory traversal dans le package st. Examinons cela plus en détail.

Une attaque de Directory Traversal (également connue sous le nom de path traversal) vise à accéder à des fichiers et répertoires stockés en dehors du dossier prévu. En manipulant des fichiers avec des séquences « point-point-slash » (../) et leurs variantes, ou en utilisant des chemins de fichiers absolus, il peut être possible d'accéder à des fichiers et répertoires arbitraires stockés sur le système de fichiers, y compris le code source de l'application, la configuration et d'autres fichiers système critiques.
Les vulnérabilités Directory Traversal peuvent généralement être divisées en deux types :
Le package de l'application goof qui contient une vulnérabilité de directory traversal que nous allons exploiter est le package st. Jetez un œil à la documentation de st et familiarisez-vous avec la bibliothèque.
Vous devriez maintenant savoir ce qu'est le directory traversal, ce que fait le package st et pouvez passer à l'attaque de l'application — vous êtes de retour dans l'équipe rouge ! Cherchez dans l'application où le package st pourrait être utilisé et essayez d'accéder à un répertoire auquel vous ne devriez pas avoir accès.
Voici quelques indices pour vous donner des pistes si vous êtes bloqué — essayez de ne les consulter qu'après avoir déjà essayé par vous-même et avoir besoin d'aide.
Cliquez pour voir Indice 1.
Cliquez pour voir Indice 2.
Cliquez pour voir Indice 3.
Cliquez pour voir Indice 4.
Cliquez pour voir Indice 5.
Cliquez pour voir Indice 6.