L'OBJECTIF DE CE COURS EST DE VOUS APPRENDRE LES VULNÉRABILITÉ DES PAGES HTML POUR MIEUX PROTÉGER LES VÔTRES....
Qu'est-ce que l'injection HTML ?
L'essence de ce type d'attaque par injection consiste à injecter du code HTML à travers les parties vulnérables du site Web. L'utilisateur malveillant envoie du code HTML via n'importe quel champ vulnérable dans le mais de modifier la conception du site Web ou toute information affichée à l'utilisateur
Types d'injection HTML
Cette attaque ne semble pas très difficile à comprendre ou à réaliser, le HTML étant considéré comme un langage assez simple. Cependant, il existe différentes façons d'effectuer ce type d'attaque. On peut également distinguer différents types de cette injection.
Cependant, les principaux types sont :
- Injection HTML stockée
- Injection HTML réfléchie
1) Injection stockée HTML :
La principale différence entre ces deux types d'injection est que l'attaque par injection stockée se produit lorsqu'un code HTML défectueux est enregistré sur le serveur Web et est exécuté chaque fois que l'utilisateur appelle une fonctionnalité appropriée. n'est pas stocké en permanence sur le serveur Web. L'injection réfléchie se produit lorsque le site Web répond correctement à l'entrée malveillante.
2) Injection HTML réfléchie :
Cela peut à nouveau être divisé en plusieurs types :
- OBTENIR réfléchi
- POST réfléchi
- URL réfléchie
L'attaque par injection réfléchie peut être effectuée différemment selon les méthodes HTTP, c'est-à-dire GET et POST. Je rappelle qu'avec la méthode POST, les données sont envoyées et avec la méthode GET, les données sont demandées.
Pour savoir quelle méthode est utilisée pour les éléments appropriés du site Web, nous pouvons vérifier la source de la page.
Par exemple
un testeur peut vérifier le code source du formulaire de connexion et trouver la méthode utilisée pour celui-ci. Ensuite, la méthode d'injection HTML appropriée peut être sélectionnée en conséquence
L'injection GET réfléchie se produit lorsque notre entrée est affichée (reflétée) sur le site Web. Supposons que nous ayons une simple page avec un formulaire de recherche, qui est vulnérable à cette attaque. Ensuite, si nous tapons n'importe quel code HTML, il apparaîtra sur notre site Web et en même temps, il sera alimenté dans le document HTML.
L'injection POST HTML réfléchie est un peu plus difficile. Cela se produit lorsqu'un code HTML incorrect est envoyé au lieu des paramètres de la méthode POST corrige.
L'URL réfléchie se produit lorsque le code HTML est envoyé via l'URL du site Web, affiché sur le site Web et en même temps injecté dans le document HTML du site Web.
Comment empêcher l'injection HTML ?
Il ne fait aucun doute que la raison principale de cette attaque est l'inattention et le manque de connaissances du développeur. Ce type d'attaque par injection se produit lorsque l'entrée et la sortie ne sont pas correctement validées. Par conséquent, la règle principale pour empêcher l'attaque HTML est la validation appropriée des données.
Chaque entrée doit être vérifiée si elle contient un code de script ou un code HTML. Habituellement, il est vérifié si le code contient un script spécial ou des crochets HTML - <script></script>, <html></html>.
Balise HTML
Une balise HTML étiquette des éléments de contenu, tels que "titre", "paragraphe", "formulaire", etc. Ce sont les noms d'éléments entourés de crochets angulaires et sont de deux types - la "balise de début" également connue sous le nom de balise d'ouverture et la "balise de fin" appelée balise de fermeture. Les navigateurs n'affichent pas ces balises HTML mais les utilisent pour saisir le contenu de la page Web.
Attributs HTML
Afin de fournir des informations supplémentaires aux éléments, nous utilisons des attributs, ils résident à l'intérieur de la balise de début et se présentent sous la forme de paires "nom/valeur", de sorte que le nom de l'attribut est suivi d'un "signe égal à" et de la valeur de l'attribut est entouré de "guillemets".
1
<a href = "http://exemple.in">exemple</a>
Ici, le "href" est la "valeur de l'attribut".
COMMENT TESTER LA VULNÉRABILITÉ HTML INJECTION
Quand il commence à tester les failles possibles pour les attaques d'injection, un testeur doit d'abord répertorier toutes les parties potentiellement vulnérables du site Web.
Je rappelle qu'il peut s'agir de :
- Tous les champs de saisie de données
- Lien du site
- Ensuite, des tests manuels pourraient être effectués.
Par exemple , il peut s'agir de balises simples avec du texte :
Par exemple , il peut s'agir de balises simples avec du texte :
<h1>Test d'injection HTML</h1>
<form method="post" action="index.html">
Tapez le texte à rechercher
<form method="post" action="index.html"> <p><input type="text" name="search" value="" placeholder="Search text"></p> <p class="search_text"> <label> <input type="checkbox" name="search_text" id="search_text">
Tapez le texte dans la recherche
</label> </p> <p class="submit"><input type="submit" name="commit" value="Search"></p> </form>
Si un code HTML enregistré quelque part s'affiche, alors le testeur peut être sûr que cette attaque par injection est possible. Ensuite, un code plus compliqué peut être essayé - par exemple , pour afficher le faux formulaire de connexion.
