Vous êtes sur la page 1sur 20

Hackazon

RAPPORT
D’AUDIT

WECKEL Théo
BENHAMOUCHE Jilani
Contacts

Hackazon Thibaud ROBIN Directeur Générale trobin@myges.fr


Jilani Equipe
ESGI jbenhamouche@myges.fr
Benhamouche Cybersécurité
Equipe
ESGI Théo Waeckel tweckel@myges.fr
Cybersécurité

www.hackazon.trackflaw.com
Table des matières
Contacts...................................................................................................2
Introduction..............................................................................................4
Contexte et objectifs................................................................................4
Tableau de vulnérabilités............................................................................4
Synthèse managériale................................................................................5
Synthèse technique....................................................................................6
Sections et tests OWASP.............................................................................7
1. Collecte d’informations....................................................................7
2. Configuration et mécanismes de déploiement.....................................7
2.1 Entêtes de sécurité HTTP manquants.................................................7
2.2 Divulgation d'informations techniques dans les entêtes HTTP................8
2.3 Absence d’antivirus.........................................................................8
3. Gestion des identités.......................................................................9
3.1 Définition des rôles.........................................................................9
3.2 Absence de confirmation lors de la création de compte.........................9
4. Authentification.............................................................................10
4.1 Absence de modification de mot de passe une fois connecter..............10
4.2 Absence de politique de mot de passe..............................................10
4.3 Absence de protection anti force brute.............................................10
5. Autorisations................................................................................12
5.1 Défaut d’autorisation : accès aux commandes d'autres utilisateurs.......12
5.2 Inclusion de fichiers locaux.............................................................13
6. Gestion des sessions......................................................................14
6.1 Cookies non sécurisés....................................................................14
7. Validation des entrées utilisateurs...................................................15
7.1 Application vulnérable aux attaques CSRF.........................................15
7.2 Application vulnérable aux attaques de type XSS...............................16
7.3 Injection de commandes systèmes..................................................17
7.4 Application vulnérable aux injections SQL.........................................17
8. Gestion des erreurs.......................................................................18
9. Cryptographie...............................................................................18
10. Processus métier...........................................................................19
10.1 Fonctionnalité de téléversement de fichiers non sécurisés.................19
11. Côté client....................................................................................20

www.hackazon.trackflaw.com
Introduction
Contexte et objectifs
L'ESGI a mandaté Theo WAECKEL et Jilani BENHAMOUCHE pour réaliser un test
d’intrusion sur leur site www.hackazon.trackflaw.com.

L’audit sera effectué en mode boite noir, il sera donc réalisé dans les conditions
les plus proches d’une attaque externe perpétrée par un inconnu distant. Cela
signifie qu’aucune information (ou quasiment aucune) nous est fournie aux avant
de commencer les tests.

Tableau de vulnérabilités
Voici notre tableau comportant l’ensemble des vulnérabilités trouver lors
de notre test d’intrusion.

Intitulé Exploitation Impacte Criticité


Divulgation d'informations techniques
Faible Moyen Faible
dans les entêtes HTTP
Entêtes de sécurité HTTP manquants Faible Haut Faible

Absence d’antivirus Moyen Faible Faible


Absence de confirmation lors de la
Faible Faible Faible
création de compte
Absence de modification de mot de
Faible Faible Faible
passe une fois connecter
Absence de politique de mot de passe Moyen Faible Moyen

Absence de protection anti force brute Faible Faible Moyen


Défaut d’autorisation : accès aux
Faible Faible Moyen
commandes d'autres utilisateurs
Inclusion de fichiers locaux Moyen Faible Moyen

Cookies non sécurisés Moyen Moyen Moyen

Application vulnérable aux attaques CSRF Faible Faible Moyen


Application vulnérable aux attaques de type
XSS Moyen Moyen Haut

Injection de commandes systèmes Haut Faible CRITIQUE

Application vulnérable aux injections SQL Haut Moyen CRITIQUE

www.hackazon.trackflaw.com
Fonctionnalité de téléversement de fichiers non
sécurisé Haut Faible CRITIQUE

Synthèse managériale

Diverses vulnérabilités trouvées sur le site Web permettent aux


attaquants d'effectuer des actions malveillantes plus ou moins graves.
Les attaquants peuvent notamment collecter des informations des
données sensibles stockées sur le serveur, accéder à votre compte en se
faisant passer pour vous. Une vulnérabilité critique dans le système de
téléchargement de fichiers permet à un attaquant d'exécuter du code sur
le serveur et d'en prendre le contrôle. Cela signifie que vous pouvez
accéder et modifier tout ce que vous voulez.
Les attaquants peuvent obtenir, sans s’authentifier, des données sensibles
sur les utilisateurs, telles que les informations personnelles, les
coordonnées bancaires et les mots de passe.
La plupart des vulnérabilités découvertes nécessitent un compte.
Cependant, aucune confirmation de mail lors de la création d'un compte
n’est demandée. Cela signifie que les attaquants peuvent rester
totalement anonymes en créant de faux comptes.

www.hackazon.trackflaw.com
Synthèse technique

Parmi les choses relevés dans la synthèse managérial on peut souligner


plus précisément les éléments suivants.
Des informations sensibles peuvent être extraites facilement du serveur.
Les vulnérabilités aux attaques de type XSS permettent également
d'accéder à l'intégrité des informations de compte de la victime en se
faisant passer pour l'utilisateur.
Cette vulnérabilité permet également aux attaquants de détourner et de
manipuler leurs navigateurs pour effectuer des actions malveillantes.
En raison du manque de validation des fichiers importés via le système de
téléchargement de fichiers et de la possibilité d'injecter des commandes
système dans les URL, un attaquant peut effectuer un reverse shell sur le
serveur et en prendre le contrôle à distance.
Une vulnérabilité d'injection SQL dans la zone de recherche du produit
permet aux attaquants de récupérer les informations personnelles des
clients, les coordonnées bancaires, les mots de passe et d'autres données
stockées dans la base de données sans authentification.

www.hackazon.trackflaw.com
Sections et tests OWASP
1. Collecte d’informations
Github : Le code source de Hackazon est disponible sur GitHub à l’adresse
suivante : https://github.com/rapid7/hackazon.

Moteur de recherche : Le code source est disponible sur internet.

Fichier “Robots.txt” : Nous avons tenté d’accéder au fichier “robots.txt” et


l’application nous retourne un code HTTP 200 “OK” avec une réponse vide.

2. Configuration et mécanismes de déploiement


2.1 Entêtes de sécurité HTTP manquants
Intitulé Exploitation Impacte Criticité
Entêtes de sécurité HTTP manquants Faible Moyen Faible

On effectue une requête GET au serveur pour analyser les en-têtes http.

Les en-têtes de sécurité HTTP suivants sont absents :

- HTTP-Strict-Transport-Security : oblige les applications à utiliser des


connexions sécurisées via HTTPS.

- X-Frame-Options : protection contre les attaques de type clickjacking

- Permissions-Policy : défini quelles fonctionnalités du navigateur sont


disponibles

- Content-Security-Policy : protection contre les attaques XSS

- X-Content-Type-Options : nosniff : empêche les navigateurs d'interpréter


les fichiers comme un type MIME différent de celui spécifié dans l'en-tête
Content-Type.

- Referer-Policy : Permet de contrôler la provenance des requêtes

www.hackazon.trackflaw.com
Remédiation : La vulnérabilité peut être remédié avec la configuration en-têtes
ci-dessus.

2.2 Divulgation d'informations techniques dans les entêtes HTTP


Intitulé Exploitation Impacte Criticité
Divulgation d'informations techniques
Faible Moyen Faible
dans les entêtes HTTP

Vous pouvez voir que les informations sur le serveur sont spécifiées dans les en-
têtes X-Powered-By et Server. Ces en-têtes révèlent le type de serveur Web
(Nginx) et la version de PHP (5.6.40).

Remédiation : Supprimez ces deux en-têtes de la configuration de votre serveur


Web et mettez à jour votre version de PHP.

2.3 Absence d’antivirus


Intitulé Exploitation Impacte Criticité
Absence d’antivirus Moyen Faible Faible

Nous avons constaté qu’il n’y avait pas d’antivirus par suite des différents tests
de l’audit.

Remédiation : installez un programme antivirus sur le serveur.

www.hackazon.trackflaw.com
3. Gestion des identités
3.1 Définition des rôles
Il existe deux niveaux de privilèges sur l’application :

- Administrateur : le panneau d'administration est disponible à l'URL


https://hackazon.trackflaw.com/admin mais cette page est protégée par
un mot de passe et un nom d'utilisateur.

- Utilisateur : Il a accès aux fonctionnalités de l'application, à savoir les


changements de compte et les achats en ligne.

3.2 Absence de confirmation lors de la création de compte


Intitulé Exploitation Impacte Criticité
Absence de confirmation lors de la
Faible Faible Faible
création de compte

Aucune validation de mail n’est demandée. Nous avons également testé


l’inscription avec le même mail. Aucun contrôle à ce niveau est effectué.

Remédiation : Mettre en place un mécanisme de lien unique et aléatoire reçu sur


l’adresse mail spécifiée afin de finaliser l’inscription.

www.hackazon.trackflaw.com
4. Authentification
4.1 Absence de modification de mot de passe une fois connecter
Intitulé Exploitation Impacte Criticité
Absence de modification de mot de
Faible Faible Faible
passe une fois connecter

Une fois sur le lien : https://hackazon.trackflaw.com/account/profile/edit.

Vous pouvez modifier le prénom, le nom et le numéro de téléphone de votre


compte mais pas votre mot de passe ou le mail.

4.2 Absence de politique de mot de passe


Intitulé Exploitation Impacte Criticité
Absence de politique de mot de passe Moyen Faible Moyen

Aucune politique de robustesse des mots de passe est en place. Cela signifie que
tous les mots de passe sont acceptés peu importe leur nombre de caractère ou
dureté. Les mots de passe comme : « motdepasse » ; « 12345 » ; « azerty »
sont acceptés.

Remédiation : Appliquer une politique de mots de passe fort selon la


recommandation de l’ANSSI

4.3 Absence de protection anti force brute


Intitulé Exploitation Impacte Criticité
Absence de protection anti force brute Faible Faible Moyen

Nous avons testé le formulaire d'inscription pour analyser s'il est protégé contre
les attaques par force brute.

La connexion se fait via la requête POST suivante :

www.hackazon.trackflaw.com
Nous avons donc testé avec l’outil Hydra, une attaque par force brute afin de
deviner le mot de passe à partir d’un dictionnaire.

Nous avons utilisé la commande suivante pour nos tests :

Nous avons donc remarqué qu’aucune protection n’est mise en place, et que le
compte n’est pas verrouillé après plusieurs tentatives en échec.

Remédiation : Nous vous recommandons de limiter le nombre de tentatives de


connexion avant que le compte ne soit verrouillé. Nous vous recommandons
également d'utiliser un mécanisme d'authentification multi-facteur. De plus, un
CAPTCHA peut être ajouté au formulaire d'inscription pour se protéger contre les
attaques automatisées par force brute.

www.hackazon.trackflaw.com
5. Autorisations
5.1 Défaut d’autorisation : accès aux commandes d'autres utilisateurs
Intitulé Exploitation Impacte Criticité
Défaut d’autorisation : accès aux
Faible Faible Moyen
commandes d'autres utilisateurs

Lorsque l’utilisateur fait une commande, il peut la visualiser sur son profil. On
voit que le numéro de la commande apparaît dans l’url. Si on change ce numéro,
on peut visualiser la commande d’une autre personne.

Notre commande :

En changeant l’id dans l’URL, on peut accéder à la commande 1000009 :

Remédiation : Meilleure gestion des droits afin que les commandes soient
accessibles uniquement par les comptes qui en sont à l’origine.

www.hackazon.trackflaw.com
5.2 Inclusion de fichiers locaux
Intitulé Exploitation Impacte Criticité
Inclusion de fichiers locaux Moyen Faible Moyen

Nous avons parcouru les différentes pages auxquelles nous avions accès afin de
déceler de potentielles inclusion de fichier locaux.

Dans les requêtes, l’argument ‘?page’ est exploitable depuis la page


/account/help_articles

Après avoir testé plusieurs possibilités nous avons découvert une url exploitable :

/account/help_articles?page=/etc/passwd%00

Nous pouvons donc lire n’importe quel fichier du serveur lisible par l’utilisateur
www-data en ajoutant un octet nul à la fin du fichier que l’on souhaite lire :

De plus, nous avons testé d’inclure un fichier provenant de notre infrastructure,


mais ceci n’était pas exploitable.

Remédiation : Il est conseillé de maintenir une liste blanche de fichiers, qui


peuvent être inclus par la page, puis utiliser un identifiant pour appeler la page
souhaitée. Tout identifiant invalide doit être rejeté.

www.hackazon.trackflaw.com
6. Gestion des sessions
6.1 Cookies non sécurisés
Intitulé Exploitation Impacte Criticité
Cookies non sécurisés Moyen Moyen Moyen

Après avoir analysé le cookie de session PHP, nous avons remarqué que les
attributs de sécurité “Secure”, “HTTP-Only” et “Domain” sont manquants.

“Secure” force le cookie à passer uniquement par le protocole sécurisé HTTPS, il


n'est donc jamais envoyé en clair.

“HTTP-Only” protège contre le vol de cookie lors d’une attaque de type XSS.

“Domain” vérifie si le domaine du site est bien celui inscrit dans le cookie afin
d’éviter sa récupération par un tiers malveillant.

Remédiation : Mettre en place les attributs de sécurité ci-dessus au cookie


PHPSESSID. De plus, il faudrait générer un nouveau cookie après s’être
authentifié et le supprimer après la déconnexion.

www.hackazon.trackflaw.com
7. Validation des entrées utilisateurs
7.1 Application vulnérable aux attaques CSRF
Intitulé Exploitation Impacte Criticité
Application vulnérable aux attaques CSRF Faible Faible Moyen

Nous avons testé si l’application était vulnérable aux injections de requêtes


illégitimes par rebond. La plupart des requêtes sont protégées par un jeton
aléatoire et unique. Cependant, nous avons identifié que la fonctionnalité d’ajout
d’éléments dans le panier était vulnérable. En effet, la requête suivante ne
possède pas de jeton CSRF :

L'attaquant incite ensuite l'utilisateur à visiter son site Web et à ajouter les
articles souhaités au panier de l'utilisateur. J'ai utilisé l'outil CSRF-PoC-Generator
pour générer une page HTML qui effectue cette action.

Remédiation : Nous vous recommandons d'ajouter des jetons CSRF à toutes les
requêtes qui entraînent des changements d'état et de les valider dans le backend
de votre application.

www.hackazon.trackflaw.com
7.2 Application vulnérable aux attaques de type XSS
Intitulé Exploitation Impacte Criticité
Application vulnérable aux attaques CSRF Faible Faible Moyen

Nous avons identifié des injections XSS réfléchies et stockées.

XSS réfléchies :

- Le paramètre searchString de la page /search est vulnérable :

XSS stockées :

- Le champ userQuestion de la page /faq est vulnérable :

- Le champ ‘firstname’ de la page /account/profile/edit est aussi vulnérable.

Remédiation : nous vous recommandons de valider toutes les entrées utilisateur.


Vous pouvez utiliser OWASP ESAPI pour un développement plus sûr.

www.hackazon.trackflaw.com
7.3 Injection de commandes systèmes
Intitulé Exploitation Impacte Criticité
Injection de commandes systèmes Haut Faible CRITIQUE

Une vulnérabilité sur la page My account > My Documents > Delivery permet
d’injecter des commandes systèmes.

Pour cela, ajouter un point-virgule suivi de la commande souhaitée à la fin de


l’url :

Le serveur renvoie le retour de la commande dans le contenu de la page :

Un attaquant peut donc effectuer toutes les commandes système qu’il souhaite
en tant que www-data.

Remédiation : Le moyen le plus efficace de se protéger des vulnérabilités


d’injections de commande est de ne pas utiliser de commande système dans le
code source de l’application. Si cela n’est pas possible, validez l'entrée de
l'utilisateur par rapport à une liste blanche de valeurs autorisées.

7.4 Application vulnérable aux injections SQL


Intitulé Exploitation Impacte Criticité
Application vulnérable aux injections SQL Haut Moyen CRITIQUE

Nous avons testé diverses entrées utilisateur pour analyser si notre application
est vulnérable à l'injection SQL. J'ai trouvé une page /product/view qui utilise 'id'
comme paramètre vulnérable à l'injection SQL.

Les tests ont été effectués à l'aide de l'outil Sqlmap. La commande à utiliser est :

sqlmap -u https://hackazon.trackflaw.com/product/view?id=1 -p id --dump --


batch

www.hackazon.trackflaw.com
L’outil nous indique que le paramètre id est vulnérable à 3 types d’injection SQL.

Grâce à l’argument –dump de sqlmap, nous avons pu récupérer le nom de la


base de données ainsi que ces tables.

Remédiation : Selon l’OWASP, il est conseillé d’utiliser des instructions


préparées, et des procédures correctement construites. Il faut aussi valider les
entrées utilisateurs, et échapper à toutes les entrées fournies par l’utilisateur.

8. Gestion des erreurs


Nous n’avons trouvé aucune vulnérabilité lié à la gestion des erreurs sur
l’application.

9. Cryptographie
Nous n’avons pas trouvé de vulnérabilités cryptographiques sur l’application.

Nous avons utilisé l’outil SSLLabs de Qualys afin de tester la sécurité


cryptographique :

www.hackazon.trackflaw.com
10. Processus métier
10.1 Fonctionnalité de téléversement de fichiers non sécurisés
Intitulé Exploitation Impacte Criticité
Fonctionnalité de téléversement de fichiers non
sécurisé Haut Faible CRITIQUE

Nous avons identifié une page permettant un dépôt de fichier :


https://hackazon.trackflaw.com/account/profile/edit. Il est possible de modifier
l’avatar du profil en téléversant un fichier :

J'ai ensuite testé le téléchargement de différents types de fichiers et j'ai constaté


qu'aucune validation n'était en cours. Nous avons ensuite envoyé un reverse
shell PHP pour analyser s'il y avait une réponse du serveur.

Notre reverse shell a bien été envoyée et exécuté avec succès lors de la visite de
la page de notre profil. Nous avons bien reçu la connexion, qui nous a permis
d’obtenir un shell en tant que www-data.

Cette vulnérabilité est très critique car elle permet à un attaquant possédant un
compte sur l’application d’obtenir un shell interactif sur le serveur. Il pourrait
modifier le contenu de l’application, identifier de potentiels mot de passe en clair

www.hackazon.trackflaw.com
dans des fichiers de configuration ou bien même identifier d'autres vulnérabilités
lui permettant une élévation de privilège.

Le reverse-shell déposé se nomme audit_revshell.php et doit être supprimé


après la restitution de ce rapport.

Remédiation : Il est conseillé de n'autoriser que certaines extensions de fichiers.


Nous vous recommandons également de vérifier les types de fichiers sans faire
confiance à l'en-tête Content-Type, qui peut être falsifié. Vous devrez peut-être
également exécuter le fichier via un antivirus ou un bac à sable pour vous
protéger contre les fichiers malveillants.

11. Côté client


Nous n’avons trouvé aucune vulnérabilité du côté client.

www.hackazon.trackflaw.com

Vous aimerez peut-être aussi