Rapport Audit
Basic injection
Nom : FIMOUD
Prénom : Safa
Class : E4 DAD B
Sommaire
1. Introduction
1.1 Rappel du périmètre
1.2 Présentation des échelles utilisées
2. Synthèse du test d’intrusion
2.1 Bilan de l’audit
2.2 Synthèse des vulnérabilités
2.3 Preuves
3. Vulnérabilités identifiées
3.1 SQL Injection
4. Actions defensives:
**Introduction**
1.1 Rappel du périmètre
Les serveurs de bases de données fragiles étant facilement repérables et les attaques par injection SQL tout aussi simples, les attaquants du monde entier s’emparent très souvent de cette méthode. Les attaquants agissent ainsi selon différents modèles et exploitent des failles nouvelles des processus de management de données des applications mais surtout celles qui leur sont plus familières. Pour vous expliquer comment une injection SQL fonctionne, nous avons répertorié la méthode la plus fréquente.
Le test d’intrusion a porté sur le suivant :
Périmètre :
- Sur le site https://ctflearn.com/ j’ai choisie un challenge de SQL injection. Sur notre base de données j’ai Renseigner dans l’input la valeur : safae
résultat requête : SELECT * FROM webfour.webfour where name = ‘safae’

Renseigner dans l’input la valeur : 'safae résultat requête : SELECT * FROM webfour.webfour where name = '‘safae’

1.2 Présentation des échelles utilisées
L’échelle de risque est classée selon 4 niveaux :

Le niveau de risque d’une vulnérabilité est calculé est fonction de deux valeurs, sa facilité d’exploitation:

Ainsi que l’impact technique CVSS de la vulnérabilité

2. Synthèse du test d’intrusion
2.1 Bilan de l’audit
Le test d’intrusion a permis d’identifier plusieurs vulnérabilités sur le périmètre cible, le diagramme ci-dessous représente la répartition en termes de gravité technique :

Les vulnérabilités de gravité forte et critique constituent la principale source de menace envers le SI, celles-ci permettent à un attaquant de Compromettre rapidement et facilement l’organisation
Les vulnérabilités moyennes et faibles sont principalement des vulnérabilités liées à un non-respect des bonnes pratiques de configuration et sécurité pouvant amener (mise bout à bout) une compromission du SI
Enfin, le diagramme ci-dessous présente les impacts “business” sur l’organisation, la moyenne se trouve entre 6 et 5 qui est un score 5,5
Le système d’information possède un score de risque de 51 %
2.2 Synthèse des vulnérabilités
Cependant, les données provenant de l'utilisateur sont directement insérées dans une requête SQL.
Un attaquant peut donc provoquer une injection SQL, afin de lire les données.
Cette faille cybersécurité concerne les logiciels ou systèmes.
On castate du coup que les valeurs ne sont pas sanitizé, du coup on tente d’injecter avec la fameuse OR 1=1, ce qui veut dire concrétement, cherche moi dans la BDD où name = ‘’ (vide) OR ‘1’ = ‘1’ (ce qui est vrai dans tout les cas)
Renseigner dans l’input la valeur: ’ or ‘1’='1
résultat requête : SELECT * FROM webfour.webfour where name = ‘’ or ‘1’=‘1’
2.3 Preuves
L'images suivante apportent en guise de preuve l’atteinte des objectifs de l’attaquant

3. Vulnérabilités identifiées
3.1 SQL Injection :
En principe, chaque site Web et application Web peut être vulnérable à une injection SQL. Il suffit que le langage de la base de données soit SQL. En effet, trop souvent, les fabricants des programmes ne mettent pas en place un niveau de sécurité suffisant. Les failles découvertes ne restent pas longtemps secrètes dans le monde du Net. Il existe par exemple des pages d’informations qui présentent les failles de sécurité et dévoilent immédiatement aux criminels comment trouver le projet Web par une recherche Google. Grâce à des rapports d’erreurs classiques, il peut être rapidement vérifié si les références indiquées représentent en effet une cible d’attaque potentielle.
4. Actions defensives:
* Il faudrait sanitizer ou esacper le contenu de l’input text avant de l’ajouter à la requête SQL, Ou d’utiliser PDO avec les requêtes préparés pour éviter toutes sortes d’injection. Exemple :

- [ ] * Superviser la saisie automatique des applications par Tester et filtrer les méthodes et paramètres utilisés par les applications connectées lors de vos saisies dans la base de données.