Exploitation de failles
Comprendre et tester les vulnérabilités Web courantes (XSS, SQLi, CSRF)
Notions théoriques
Les failles XSS, SQLi et CSRF sont parmi les plus fréquentes dans les applications Web.
Elles permettent à un attaquant d’interagir avec le site Web ou la base de données d’une manière non prévue par le développeur.
XSS (Cross-Site Scripting)
Une faille XSS permet à un attaquant d’injecter du code JavaScript malveillant dans une page Web. Ce code s’exécute dans le navigateur d’un utilisateur.
Il existe plusieurs types de XSS :
- XSS réfléchi : le script est injecté via une URL ou un formulaire, et s’exécute immédiatement.
- XSS stocké : le script est enregistré dans la base de données et s’exécute lorsqu’un autre utilisateur affiche la page.
- XSS DOM-based : la faille est dans le JavaScript côté client, qui traite mal les données d’entrée.
Conséquences :
- Vol de cookies/session
- Redirection vers un site malveillant
- Défiguration de page
- Envoi de requêtes à l’insu de l’utilisateur
SQLi (Injection SQL)
Une faille SQLi permet à un attaquant d’injecter des commandes SQL dans une requête prévue par le développeur. Cela arrive souvent lorsqu’un champ de formulaire est mal filtré.
Exemple :
SELECT * FROM users WHERE username = 'admin' AND password = '123';
Si l’utilisateur entre ' OR '1'='1, la requête devient :
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';
Résultat : l’authentification est contournée.
Conséquences :
- Contournement d’authentification
- Lecture ou suppression de données
- Modification de la base de données
- Prise de contrôle du serveur si la base est mal sécurisée