Nous avons couvert l'injection et l'exécution de commandes dans Node JS. Le scénario comprenait une zone de saisie qui transmet les entrées de l'utilisateur sous forme de nombres à une fonction de calculatrice qui utilise une fonction EVAL() pour calculer et renvoyer le résultat de l'opération arithmétique à l'utilisateur. La fonction EVAL() ainsi que la calculatrice n'implémentent aucune sorte de validation d'entrée, ce qui nous a permis d'utiliser et d'appeler des méthodes Node JS telles que readdirsync() et readfilesync() pour lire des fichiers sensibles. Cela faisait partie de HackTheBox JSCalc défi du Web.

Obtenir les notes du certificat OSCP

Notes pratiques de Burp Suite

Le cours pratique complet sur les tests d’intrusion d’applications Web

DESCRIPTION DU DÉFI
Dans les profondeurs mystérieuses de la mer numérique, une calculatrice JavaScript spécialisée a été conçue par des calmars férus de technologie. Dotés de plusieurs bras et de compétences complexes en résolution de problèmes, ces ingénieurs céphalopodes l'utilisent pour tout, des calculs de trajectoire à jet d'encre aux mathématiques en haute mer. Essayez de le déjouer à vos risques et périls ! 🦑

Faits saillants de la vidéo

Pour en savoir plus sur l'actif Noeud.js processus, utilisez le processus objet global. Require() n'est pas nécessaire car il est global. Il offre une multitude de fonctionnalités et de techniques utiles pour mieux maîtriser les interactions du système.

Par exemple, le répertoire de travail actuel du processus Node.js est renvoyé par processus.cwd(). J'ai utilisé notre programme pour tester cela et j'ai reçu les résultats. n'a pas activé Burp. Il me suffisait d'utiliser la console du navigateur pour examiner la charge utile et voir la réponse.

Lire les données d'un fichier flag.txt sur le serveur était le but du défi. Le module Node.js fs, qui doit être requis avec require('fs'), peut vous aider à le faire. Il existe des versions synchrones et asynchrones de chaque méthode. Le travail avec le système de fichiers est rendu possible (accès, gestion et modification de fichiers, etc.). Il comprend un large éventail de techniques et d’attributs. Le contenu du répertoire peut être répertorié à l'aide de la méthode readdir() ou readdirSync() (version synchrone) de la classe fs, qui fonctionne de manière similaire aux commandes ls ou dir sous Linux et Microsoft Windows, respectivement.

Nous avons utilisé la charge utile ci-dessous pour résoudre le défi

exiger('fs').readdirSync('/application').versChaîne()

exiger('fs').readdirSync(‘../’).toString()

exiger('fs').readFileSync("/flag.txt").versChaîne()

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles