Ce document présente l'analyse du challenge "Appointment" de la plateforme Hack The Box, mettant en lumière les techniques d'injection SQL et de découverte de vulnérabilités web. Phase d'initialisation
Pour commencer, nous créons une instance de la machine cible. Tâche 1
Quetsion : Quel est le plien forme de SQL ?
Réponse : SQL est l'acronyme de Structured Query Language (Langage de Requête Structuré).
Tâche 2
Question : Quel est le type de vulnérabilité SQL le plus courant ?
Réponse : Le type de vulnérabilité SQL le plus répandu est l'injection SQL.
Tâche 3
Question : Que signifie l'acronyme PII ?
Réponse : PII représente Personally Identifiable Information (Informations d'Identification Personnelles), définies comme des informations permettant d'identifier ou de suivre un individu.
Tâche 4
Question : Comment nomme OWASP l'attaque par injection dans son Top 10 2021 ?
Réponse : A03:2021-Injection
Tâche 5
Question : Quel service et version tourne sur le port 80 de la cible ?
Commande d'analyse :
nmap -Pn -sV -p80 10.129.126.136
Réponse : Apache httpd 2.4.38 ((Debian))
Tâche 6
Question : Quel est le port standard pour le protocole HTTPS ?
Réponse : 443
Tâche 7
Question : Quelle technique d'attaque par essai-erreur peut être utilisée sur un formulaire de connnexion ?
Réponse : brute-forcing (force brute)
Tâche 8
Question : Dans le jargon des applications web, comment appelle-t-on un dossier ?
Réponse : directory (répertoire)
Tâche 9
Question : Quel code de statut HTTP indique "Non trouvé" ?
Réponse : 404
Tâche 10
Question : Quel paramètre de la commande gobuster spécifie que nous recherchons des répertoires et non des sous-domaines ?
Commande d'aide :
gobuster --help
Réponse : dir
Tâche 11
Question : Quel symbole permet de commenter une partie du code SQL ?
Réponse : #
Exploitation de la vulnérabilité
La machine cible expose un service HTTP. En accédant à l'adresse IP dans un navigateur, nous rencontrons une page de connexion. Pour exploiter cette page, nous utilisons une technique d'injection SQL. Dans le champ utilisateur, nous saisissons : ``` admin'-- /* L'identifiant "admin" sera inséré dans la requête SQL Le guillemet simple ferme la chaîne de caractères attendue Le double tiret -- commente le reste de la requête SQL Ainsi, la vérification du mot de passe est contournée */
Nous pouvons entrer n'importe quel mot de passe dans le champ correspondant. Après soumission du formulaire, l'accès est accordé, révélant le flag nécessaire pour valider le challenge. </div>