TryHackMe OWASP Juice Shop
Hello les amis,
aujourd'hui on s'attaque à la room OWASP Juice Shop !
Après avoir lancé la machine et votre AttackBox (ou en vous connectant via Open VPN), vous pouvez démarrer vos activités...
Commençons !
#Task 2 - Let's go on an adventure
Question #1:
What's the Administrator's email address?
Réponse #1:
admin@juice-sh.op
Question #2:
What parameter is used for searching?
Réponse #2:
q
Question #3:
What show does Jim reference in his review?
Réponse #3:
star trek
#Task 3 - Inject the juice
Question #1:
Log into the administrator account!
Réponse #1:
Après avoir intercepté la requête POST via Burp lors d'un test de login, vous pouvez vous rendre compte que l'accès semble vulnérable à une injection SQL. En effet, en mettant un apostrophe à la place de l'email, le serveur retourne une erreur SQLite.
En tentant un injection qui retourne toujours VRAI, nous obtenons l'accès.
Réutilisons donc notre trouvaille en se connectant puis répondez :32a5e0f21372bcc1000a6088b93b458e41f0e02a
Question #2:
Log into the Bender account!
Réponse #2:
Sur le même principe qu'en #1, nous allons utiliser l'injection SQL. La différence ici est que nous souhaitons nous logger avec l'email bender@juice-sh.op
Nous allons donc s'implement bypasser tout ce qui se trouve après l'émail simplement en injectant '–
. Vous pouvez saisir n'importe quelle valeur pour le mot de passe
Répondez à la question avec :fb364762a3c102b2db932069c0e6b78e738d4066
Question #3:
What show does Jim reference in his review?
Réponse #3:
star trek
#Task 4 - Who broke my lock?!
Question #1:
Bruteforce the Administrator account's password!
Réponse #1:
Ici nous allons simplement utiliser Burp Suite pour faire un brute force sur le mot de passe de l'administrateur.
Après avoir intercepter la requete de login dans Burp et transmise dans l'intruder
cliquez sur le bouton §Clear
et selectionner uniquement la valeur de la clé "password". Cliquez sur le bouton Add §
vous devriez avoir ceci :
Ensuite nous allons configurer Burp comme indiqué. (Vous pouvez récupérer le fichier de mot de passe indiqué dans la section du module, ou utiliser votre propre fichier favori.
Si vous utilisez une machine "AttackBox" le fichier indiqué se trouve ici : /usr/share/wordlists/SecLists/Passwords/Common-Credentials/best1050.txt
Chargez le fichier en cliquant sur le boutant Load
il n'y a plus qu'à lancer l'attaque et attendre un beau Response 200.
Ce qui vous donnera la réponse à la question :
32a5e0f21372bcc1000a6088b93b458e41f0e02a
Question #2:
Reset Jim's password!
Réponse #2:
Suivez le processus indiqué. L'objectif est d'obtenir un maximum d'information pour réussir à découvrir les réponses aux 'questions secrètes' permettant de reinitialiser le mot de passe. Googleest votre ami ici 🥳
Répondez à la question de sécurité avec le nom identifié puis répondez à la question.
#Task 5 - AH! Don't look!
Question #1:
Access the Confidential Document!
Réponse #1
Suivez les instructions et notez l'url du lien vers le document :
Nous avons une indication /ftp/, regardons de plus prêt ce dossier :
l'accès est public et de nombreux documents sont accessibles... téléchargez un fichier, acquisition.md
par exemple puis revenez sur la home page. Votre flag est débloqué.edf9281222395a1c5fee9b89e32175f1ccf50c5b
Question #2:
Log into MC SafeSearch's account!
Réponse #2
Pour celui-ci c'est marrant, le chanteur indique comment il à construit son mot de passe dans les paroles de la chanson.
En gros, il indique que son mot de passe est Mr. Noodles mais qu'il a remplacer des voyelles avec des zéros. Mr. Noodles est composé que du o ou du e en voyelles. Le o se prête bien à la modification tentons donc avec Mr. N00dles.
La réponse à la question est 66bdcffad9e698fd534003fbb3cc7e2b7b55d7f0
Question #3:
Download the Backup file!
Réponse #3
En voulant télécharger le fichier indiqué on se trouve confronté à un obstacle nous empêchant de télécharger le fichier
Pour cela on va utiliser une faille "Poison Null Byte". C'est à dire que nous allons dire au server de ne pas interpréter le reste de la chaine. un poison NULL byte s'écrit %00, comme nous allons l'utiliser dans l'url, nous devons l'encoder : cela devient %2500.
Cependant cela ne sera pas suffisant, en effet, il semblerait que l'extension soit testé, il sufft donc d'ajouter .md
à la finde notre null byte, ce qui nous donne l'url :http://10.10.127.247/ftp/package.json.bak%2500.md
revenez sur la page d'accueil et récupérez le flag :
bfc1e6b4a16579e85e06fee4c36ff8c02fb13795
#Task 6 - Who's flying this thing ?
Question #1:
Access the administration page!
Réponse #1
Après avoir suivi les indications, connectez vous avec le compte administrateur (rappelez vous, il faut vous connecter en saisissant : ' OR 1=1 --
dans le champ email et n'importe quelle valeur pour le mot de passe.)
Ensuite dirigez vous vers l'url découverte : http://[Machine IP]/#/administration
Vous obtiendrez alors le drapeau suivant : 946a799363226a24822008503f5d1324536629a0
Question #2:
View another user's shopping basket!
- gRéponse #2
après vous êtes connecté avec le compte Admin (rappelez vous des étapes nécessaires pour cela. - Ouvrez Burp Suite par et allez dans votre panier en cliquant sur le bouton
- Vous trouverez alors la requête GET /rest/basket/1 qui retourne votre propre panier.
- Renvoyez cette requête dans le "repeater" et changer la valeur 1 par 2 par exemple.
- Exécutez la reqûete, vous obtiendrez le panier d'un autre utilisateur :
le flag apparait désormais à l'écran :
41b997a36cc33fbe4f0ba018474e19ae5ce52121
Question #3:
Remove all 5-star reviews!
Réponse #3
- Très simple, connectez-vous au compte administrateur
- Retournez sur la page d'administration
http://[MACHINE IP]/#/administration
- Supprimez avec la corbeille toutes les notes de 5 étoiles.
Le drapeau est :50c97bcce0b895e446d61c83a21df371ac2266ef
#Task 7 - Where did that come From ?
Cette tâche nous embarque sur la vulnérabilité XSS. Nous allons devoir performer 3 attaques XSS.(plus d'information sur le Cross-Site Scripting XSS)
Question #1:
Perform a DOM XSS
Réponse #1
En général les barres de recherche sont les premiers endroits à analyser pour voir s'il n'est pas possible de faire des injections XSS.
Si vous tentez le très commun <script>alert('xss')</script>
vous vous rendrez compte que cela ne fonctionne pas.
THM vous propose d'utiliser : <iframe src="javascript:alert('xss')">
, mais il existe différents payload qui fonctionnent également, par exemple <img src='test.jpg' onerror=javacript:alert('xss')>
En utilisant celui indiqué par la room TryHackME, vous obtenez alors le drapeau 9aaf4bbea5c30d00a1f5bbcfce4db6d4b0efe0bf
Question #2:
Perform a persistent XSS
Réponse #2
L'objectif est de trouver un endroit permettant de faire persister notre exploit XSS. En suivant les indications, le but est de profiter de la page de sortie "logout" pour envoyez notre exploit dans un en-tête que l'on va ajouter : "True-Client-IP" et qui contiendra comme valeur notre exploit xss.
True-Client-IP | <iframe src="javascript:alert(`xss`)"> |
En effet la page logout récupère habituellement notre adresse IP via l'en-tête X-Forwarded-For ou True-Client-IP, nous en profitons donc ainsi.
Reconnectez-vous, puis retournez sur la page Last Login IP
Notre XSS est désormais présent :
Le drapeau est 149aa8ce13d7a4a8a931472308e269c94dc5f156
Question #3:
Perform a reflected XSS
Réponse #3
On continue de visiter le site à la recherche d'une querystring pour tenter une injection reflected XSS.
Rendez-vous sur l'historique des paiements et cliquez sur le lien de suivi de votre commande.
L'url est de la forme : http://[MACHINE IP]/#/track-result?id=5267-332cd5849d7f5e19
Vous remarquez que la page affiche également cette information :
Search Results : 5267-332cd5849d7f5e19
Tentons le xss basique dans l'url :
BINGO !
Voilà le dernier drapeau de cette task : 23cefee1527bde039295b2616eeb29e1edc660a0
Task 8# - Exploration !
Une fois connecté en tant qu'admin, dirigez vous vers l'url : http://[MACHINE _IP]/#/score-board
Vous pourrez alors voir et completez tous les challenges de cette application "OWASP Juice Shop".
Le dernier drapeau de la room est: 7efd3174f9dd5baa03a7882027f2824d2f72d86e