html injection tutorial
Un regard approfondi sur l'injection HTML:
Pour avoir une meilleure perception de l'injection HTML, nous devons d'abord savoir ce qu'est le HTML.
HTML est un langage de balisage, où tous les éléments du site Web sont écrits dans les balises. Il est principalement utilisé pour créer des sites Web. Les pages Web sont envoyées au navigateur sous la forme de documents HTML. Ensuite, ces documents HTML sont convertis en sites Web normaux et affichés pour les utilisateurs finaux.
Ce didacticiel vous donnera un aperçu complet de l'injection HTML, de ses types et des mesures préventives, ainsi que des exemples pratiques en termes simples pour une compréhension facile du concept.
Ce que vous apprendrez:
- Qu'est-ce que l'injection HTML?
- Types d'injection HTML
- Comment l'injection HTML est-elle effectuée?
- Comment tester contre l'injection HTML?
- Comment empêcher l'injection HTML?
- Comparaison avec d'autres attaques
- Conclusion
- lecture recommandée
Qu'est-ce que l'injection HTML?
L'essence de ce type d'attaque par injection consiste à injecter du code HTML dans les parties vulnérables du site Web. L'utilisateur malveillant envoie du code HTML à travers tout champ vulnérable dans le but de modifier la conception du site Web ou toute information affichée à l'utilisateur.
Dans le résultat, l'utilisateur peut voir les données, qui ont été envoyées par l'utilisateur malveillant. Par conséquent, en général, l'injection HTML n'est que l'injection de code de langage de balisage dans le document de la page.
Les données envoyées lors de ce type d'attaque par injection peuvent être très différentes. Il peut s'agir de quelques balises HTML, qui afficheront simplement les informations envoyées. En outre, il peut s'agir du faux formulaire ou de la fausse page. Lorsque cette attaque se produit, le navigateur interprète généralement les données utilisateur malveillantes comme légitimes et les affiche.
Changer l'apparence d'un site Web n'est pas le seul risque que ce type d'attaque comporte. C'est assez similaire à l'attaque XSS, où l'utilisateur malveillant vole l'identité d'une autre personne. Par conséquent, le vol de l'identité d'une autre personne peut également se produire lors de cette attaque par injection.
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 manières d'effectuer ce type d'attaque. On peut également distinguer différents types de cette injection.
Premièrement, différents types peuvent être triés en fonction des risques qu'ils comportent.
Comme mentionné, cette attaque par injection peut être effectuée avec deux objectifs différents:
- Pour modifier l'apparence du site Web affiché.
- Pour voler l'identité d'une autre personne.
En outre, cette attaque par injection peut être effectuée via différentes parties du site Web, à savoir les champs de saisie de données et le lien du site Web.
Cependant, les principaux types sont:
- Injection HTML stockée
- Injection HTML réfléchie
# 1) Injection HTML stockée:
La principale différence entre ces deux types d'injection est que l'attaque par injection stockée se produit lorsqu'un code HTML malveillant est enregistré sur le serveur Web et est exécuté à chaque fois que l'utilisateur appelle une fonctionnalité appropriée.
Cependant, dans le cas d'une attaque par injection réfléchie, le code HTML malveillant n'est pas stocké en permanence sur le serveur Web. L'injection réfléchie se produit lorsque le site Web répond immédiatement à l'entrée malveillante.
# 2) Injection HTML reflétée:
Cela peut à nouveau être divisé en plusieurs types:
- Reflété GET
- POST reflété
- URL reflétée
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.
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 page simple avec un formulaire de recherche, qui est vulnérable à cette attaque. Ensuite, si nous tapons du code HTML, il apparaîtra sur notre site Web et en même temps, il sera injecté dans le document HTML.
Par exemple, nous entrons du texte simple avec des balises HTML:
Injection HTML POST réfléchie est un peu plus difficile. Cela se produit lorsqu'un code HTML malveillant est envoyé au lieu de paramètres de méthode POST corrects.
Par exemple , nous avons un formulaire de connexion, qui est vulnérable aux attaques HTML. Les données saisies dans le formulaire de connexion sont envoyées avec la méthode POST. Ensuite, si nous saisissons un code HTML au lieu des paramètres corrects, il sera envoyé avec la méthode POST et affiché sur le site Web.
Pour effectuer une attaque HTML POST réfléchie, il est recommandé d’utiliser un plugin de navigateur spécial, qui simulera les données envoyées. L'un d'eux est le plugin Mozilla Firefox «Tamper Data». Le plugin reprend les données envoyées et permet à l'utilisateur de les modifier. Les données modifiées sont ensuite envoyées et affichées sur le site Web.
Par exemple, si nous utilisons un tel plugin, nous enverrons le même code HTML ou le code du formulaire de recherche, si vous souhaitez tester avec quelque chose de plus compliqué Tapez le texte à rechercher
Si un code HTML enregistré quelque part est affiché, le testeur peut être sûr que cette attaque par injection est possible. Ensuite, un code plus compliqué peut être essayé - pour Exemple , pour afficher le faux formulaire de connexion.
Une autre solution est le scanner d'injection HTML. L'analyse automatique contre cette attaque peut vous faire gagner beaucoup de temps. Je tiens à signaler qu'il n'y a pas beaucoup d'outils de test d'injection HTML par rapport à d'autres attaques.
Cependant, une solution possible est l'application WAS. WAS peut être nommé comme un scanner de vulnérabilités assez puissant, car il teste avec les différentes entrées et ne s'arrête pas seulement avec le premier échec.
Il est utile pour les tests, peut-être comme mentionné dans le plugin de navigateur ci-dessus 'Tamper Data', il obtient des données envoyées, permet au testeur de les modifier et les envoie au navigateur.
Nous pouvons également trouver des outils d'analyse en ligne, où il vous suffit de fournir le lien du site Web et une analyse contre les attaques HTML sera effectuée. Lorsque le test est terminé, le résumé s'affiche.
Je voudrais faire remarquer que lors du choix d'un outil d'analyse, nous devons faire attention à la façon dont il analyse les résultats et est-il suffisamment précis ou non.
convertisseur youtube en mp3 en ligne sécurisé
Cependant, il ne faut pas oublier que les tests manuels ne doivent pas être oubliés. De cette façon, nous pouvons être sûrs des entrées exactes essayées et des résultats exacts que nous obtenons. De cette façon, il est également plus facile d'analyser les résultats.
De mon expérience dans une carrière de test de logiciels, je voudrais faire remarquer que pour les deux méthodes de test, nous devrions avoir une bonne connaissance de ce type d'injection. Sinon, il serait difficile de sélectionner un outil d'automatisation approprié et d'analyser ses résultats. De plus, il est toujours recommandé de ne pas oublier de tester manuellement, car cela nous rend plus sûrs de la qualité.
Comment empêcher l'injection HTML?
Il ne fait aucun doute que la principale raison 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 les attaques HTML est une 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 -,.
Il existe de nombreuses fonctions pour vérifier si le code contient des crochets spéciaux. La sélection de la fonction de vérification dépend du langage de programmation que vous utilisez.
Il faut se rappeler que c'est bon tests de sécurité fait également partie de la prévention. Je voudrais faire attention, car l'attaque par injection HTML est très rare, il y a moins de littérature pour en savoir plus et moins de scanner à sélectionner pour les tests automatiques. Cependant, cette partie des tests de sécurité ne doit vraiment pas être manquée, car vous ne savez jamais quand cela peut arriver.
En outre, le développeur et le testeur doivent avoir une bonne connaissance de la manière dont cette attaque est effectuée. Une bonne compréhension de ce processus d'attaque peut aider à l'empêcher.
Comparaison avec d'autres attaques
En comparaison avec les autres attaques possibles, cette attaque ne sera certainement pas considérée comme aussi risquée que Injection SQL ou Attaque par injection JavaScript ou même XSS peut être. Il ne détruira pas toute la base de données ou ne volera pas toutes les données de la base de données. Cependant, il ne doit pas être considéré comme insignifiant.
Comme mentionné précédemment, l'objectif principal de ce type d'injection est de modifier l'apparence du site Web affiché à des fins malveillantes, en affichant vos informations ou données envoyées à l'utilisateur final. Ces risques peuvent être considérés comme moins importants.
Cependant, la modification de l'apparence du site Web peut nuire à la réputation de votre entreprise. Si un utilisateur malveillant détruirait l’apparence de votre site Web, cela pourrait modifier l’opinion du visiteur sur votre entreprise.
Il ne faut pas oublier qu’un autre risque que cette attaque contre le site Web comporte est de voler l’identité d’un autre utilisateur.
Comme mentionné, avec l'injection HTML, l'utilisateur malveillant peut injecter la page entière, qui serait affichée pour l'utilisateur final. Ensuite, si l'utilisateur final indiquera ses données de connexion dans la fausse page de connexion, elles seront envoyées à l'utilisateur malveillant. Cette affaire est, bien entendu, la partie la plus risquée de cette attaque.
Il convient de mentionner que pour voler les données d’autres utilisateurs, ce type d’attaque est moins fréquemment sélectionné, car il existe de nombreuses autres attaques possibles.
Cependant, il est très similaire à l'attaque XSS, qui vole les cookies de l'utilisateur et les identités d'autres utilisateurs. Il existe également des attaques XSS, basées sur HTML. Par conséquent, les tests contre les attaques XSS et HTML peuvent être très similaires et exécutés ensemble.
Conclusion
Comme l'injection HTML n'est pas aussi populaire que d'autres attaques, elle peut être considérée comme moins risquée que d'autres attaques. Par conséquent, les tests contre ce type d'injection sont parfois ignorés.
En outre, il est à noter qu'il y a certainement moins de littérature et d'informations sur l'injection HTML. Par conséquent, les testeurs peuvent décider de ne pas effectuer ce type de test. Cependant, dans ce cas, les risques d'attaque HTML peuvent ne pas être suffisamment évalués.
Comme nous l'avons analysé dans ce tutoriel, avec ce type d'injection, la conception entière de votre site Web peut être détruite ou même les données de connexion de l'utilisateur peuvent être volées. Par conséquent, il est fortement recommandé d'inclure l'injection HTML dans les tests de sécurité et d'investir de bonnes connaissances.
Avez-vous rencontré une injection HTML typique? N'hésitez pas à partager vos expériences dans la section commentaires ci-dessous.
lecture recommandée
- Tutoriels Eclipse détaillés pour les débutants
- Tutoriel de test d'injection SQL (exemple et prévention des attaques par injection SQL)
- Tutoriel Python DateTime avec des exemples
- Tutoriel sur les attaques de Cross Site Scripting (XSS) avec exemples, types et prévention
- Tutoriel d'injection JavaScript: tester et prévenir les attaques par injection JS sur le site Web
- Tutoriel de script Unix Shell avec des exemples
- Tutoriel de recherche d'élément par texte de sélénium avec des exemples
- Tutoriel sur les fonctions principales de Python avec des exemples pratiques