Race Condition RCE - Pentesting Web

Voici l'interface où nous entrons notre nom :

Ce nom apparaît dans l'URL en GET avec le format suivant :

Voici le code que nous allons essayer de compromettre. Il crée un fichier temporaire hello.sh avec le nom saisi :

Cela signifie que comme Bash est en cours d'exécution, nous pouvons exécuter des commandes, mais dans ce cas, une erreur se produit :

L'erreur se produit car il y a une petite validation de caractères autorisés. MAIS d'abord, la commande est exécutée, puis la validation a lieu :

Nous allons profiter du fait qu'il y a quelques millisecondes avant que le script ne soit exécuté avant d'être validé en envoyant de nombreuses requêtes et en parvenant à voir le contenu :

Dans un cas réel où nous n'aurions pas accès au fichier "hello.txt", nous utiliserions curl de la manière suivante

  1. Nous nous mettons en écoute des requêtes en filtrant par le champ qui nous intéresse :

  1. Nous lançons une attaque de force brute jusqu'à ce que la condition soit établie

Mis à jour

Ce contenu vous a-t-il été utile ?