2MP2L
Lab2 SSDLC
Travail élaboré par :
Aymen gharbi , Mounir Kacem, Chifa belhaj Rhouma
1. Installation et test de l'outil SAST flawfinder:
Sur machine windows :
1- Installer Python
2- Installer Flawfinder:
Ouvrez l'invite de commande et exécutez : pip install flawfinder
Vérifier que flawfinder est installé sur la machine :
1
2MP2L
Créez un fichier nommé [Link] avec le contenu suivant pour simuler un code potentiellement
vulnérable
Dans ce code :
strcpy ne vérifie pas la taille du tampon, ce qui peut provoquer un débordement de
tampon.
gets est une fonction dangereuse, car elle n'impose pas de limite sur la taille de l'entrée,
ce qui peut aussi provoquer un débordement de tampon.
Exécuter Flawfinder sur ce fichier test.c et analyser les failles de sécurité potentielles :
2
2MP2L
2-Installer et tester OWASP WEBGOAT et DVWA (avec docker comme
recommandation)
Étape 1 : Installer OWASP WebGoat avec Docker
3
2MP2L
Lancer WebGoat : Après avoir tiré l'image, vous pouvez démarrer WebGoat avec la commande suivante
Cette commande mappe le port 8080 de votre machine locale au port 8080 du conteneur Docker, ce qui
vous permet d'accéder à WebGoat via un navigateur web.
4
2MP2L
Une fois le conteneur en cours d'exécution, ouvrez votre navigateur et accédez à l'URL suivante :
[Link]
Utilisez les identifiants créer apres creation de nouveau utilisateur pour vous connecter :
Nom d'utilisateur : groupelab
Mot de passe : groupelab
Sélectionner la leçon SQL Injection (intro) :
5
2MP2L
Lire l'énoncé de l'exercice :
Tester une injection SQL :
Arrêter WebGoat
docker stop <container_id>
Vous pouvez obtenir l'ID du conteneur avec :
Étape 2 : Installer DVWA (Damn Vulnerable Web Application) avec
Docker
1. Tirer l'image Docker de DVWA : Dans le terminal, exécutez la commande suivante pour
télécharger et démarrer DVWA :
6
2MP2L
2. Lancer DVWA :
3. Accéder à DVWA : [Link]
Utilisez les identifiants par défaut pour vous connecter :
Nom d'utilisateur : admin
Mot de passe : password
7
2MP2L
4- Configurer la base de données en cliquant sur le bouton "Create / Reset Database"
5- Et tester la vulnérabilité brute force ou sql injection
8
2MP2L
*Créer une page d'authentification PHP/Mysql simple vulnerable (login/pass)
Base de donnees : dbtest
Page php vulnérable : [Link]
9
2MP2L
Page html : [Link]
Page css : [Link]
10
2MP2L
Test d’une connexion valide :
Login : lina
Mot de passe : linapass
11
2MP2L
Résultat : Si les identifiants sont corrects, le script renverra une réponse JSON comme celle-ci :
Si les identifiants sont incorrects, la réponse sera :
injection SQL:
Login : lina
Mot de passe : ' OR '1'='1
Cette requête SQL sera exécutée comme suit :
SELECT * FROM users WHERE login = 'lina' AND pass = '' OR '1'='1';
L'expression OR '1'='1' est toujours vraie, ce qui permet à un attaquant de contourner
l'authentification.
Et permet à l’attaquant de s’identifier
12
2MP2L
Déterminer le nombre de colonnes avec Blind SQL Injection (ORDER BY) :
Injection avec ORDER BY
Le principe est d'essayer plusieurs valeurs pour l'option ORDER BY afin de découvrir le nombre
de colonnes dans la table. Voici comment procéder manuellement :
Injectez dans le champ de mot de passe :
' ORDER BY 1 –
Resultat obtenu :
Lorsque vous dépassez le nombre de colonnes réelles, la requête SQL retournera une erreur. Le dernier
nombre qui ne provoque pas d'erreur indique le nombre exact de colonnes dans la table. Dans notre
cas, ORDER BY 3 fonctionne, mais que ORDER BY 4 retourne une erreur, cela signifie que la table a
exactement 3 colonnes.
Installer OWASP Sonarqube avec docker :
13
2MP2L
Lancer SonarQube :
Accéder à SonarQube : [Link]
Login: admin
Password: Adminstrator1@
14
2MP2L
Analyser votre projet PHP avec sonar scanner apres son installation et configuration :
15
2MP2L
Visualiser les résultats dans SonarQube : Ouvrez votre navigateur et accédez à SonarQube via
[Link]
16
2MP2L
17
2MP2L
18