html injection tutorial
Ein detaillierter Blick auf HTML Injection:
Um eine bessere Wahrnehmung von HTML Injection zu erhalten, sollten wir zunächst wissen, was HTML ist.
HTML ist eine Auszeichnungssprache, in der alle Elemente der Website in die Tags geschrieben werden. Es wird hauptsächlich zum Erstellen von Websites verwendet. Webseiten werden in Form von HTML-Dokumenten an den Browser gesendet. Dann werden diese HTML-Dokumente in normale Websites konvertiert und für die Endbenutzer angezeigt.
Dieses Tutorial gibt Ihnen einen vollständigen Überblick über HTML Injection, seine Typen und vorbeugenden Maßnahmen sowie praktische Beispiele in einfachen Worten, damit Sie das Konzept leichter verstehen.
Was du lernen wirst:
- Was ist HTML Injection?
- Arten von HTML-Injection
- Wie wird HTML Injection durchgeführt?
- Wie teste ich gegen HTML Injection?
- Wie verhindere ich HTML-Injection?
- Vergleich mit anderen Angriffen
- Fazit
- Literatur-Empfehlungen
Was ist HTML Injection?
Die Essenz dieser Art von Injection-Attacke besteht darin, HTML-Code durch die anfälligen Teile der Website zu injizieren. Der böswillige Benutzer sendet HTML-Code über ein anfälliges Feld, um das Design der Website oder alle Informationen zu ändern, die dem Benutzer angezeigt werden.
Im Ergebnis sieht der Benutzer möglicherweise die Daten, die vom böswilligen Benutzer gesendet wurden. Daher ist HTML-Injection im Allgemeinen nur das Injizieren von Markup-Sprachcode in das Dokument der Seite.
Daten, die während dieser Art von Injektionsangriff gesendet werden, können sehr unterschiedlich sein. Es können einige HTML-Tags sein, die nur die gesendeten Informationen anzeigen. Es kann sich auch um die gesamte gefälschte Form oder Seite handeln. Wenn dieser Angriff auftritt, interpretiert der Browser böswillige Benutzerdaten normalerweise als legitim und zeigt sie an.
Das Ändern des Erscheinungsbilds einer Website ist nicht das einzige Risiko, das diese Art von Angriff mit sich bringt. Es ist dem XSS-Angriff ziemlich ähnlich, bei dem der böswillige Benutzer die Identität anderer Personen stiehlt. Daher kann es auch während dieses Injektionsangriffs zu einem Diebstahl der Identität einer anderen Person kommen.
Arten von HTML-Injection
Dieser Angriff scheint nicht sehr schwer zu verstehen oder durchzuführen zu sein, da HTML als recht einfache Sprache angesehen wird. Es gibt jedoch verschiedene Möglichkeiten, diese Art von Angriff auszuführen. Wir können auch verschiedene Arten dieser Injektion unterscheiden.
Erstens können verschiedene Typen nach den Risiken sortiert werden, die sie mit sich bringen.
Wie bereits erwähnt, kann dieser Injektionsangriff mit zwei verschiedenen Zwecken durchgeführt werden:
- So ändern Sie das Erscheinungsbild der angezeigten Website
- Die Identität einer anderen Person stehlen.
Dieser Injektionsangriff kann auch über verschiedene Teile der Website ausgeführt werden, z. B. Dateneingabefelder und den Link der Website.
Die Haupttypen sind jedoch:
- Gespeicherte HTML-Injection
- Reflektierte HTML-Injektion
# 1) Gespeicherte HTML-Injection:
Der Hauptunterschied zwischen diesen beiden Injektionstypen besteht darin, dass ein gespeicherter Injektionsangriff auftritt, wenn bösartiger HTML-Code auf dem Webserver gespeichert wird und jedes Mal ausgeführt wird, wenn der Benutzer eine entsprechende Funktionalität aufruft.
Im Fall eines reflektierten Injection-Angriffs wird bösartiger HTML-Code jedoch nicht dauerhaft auf dem Webserver gespeichert. Reflected Injection tritt auf, wenn die Website sofort auf böswillige Eingaben reagiert.
# 2) Reflektierte HTML-Injection:
Dies kann wieder in mehrere Typen unterteilt werden:
- Reflektiertes GET
- Reflektierter POST
- Reflektierte URL
Reflected Injection Attack kann gemäß den HTTP-Methoden, d. H. GET und POST, unterschiedlich ausgeführt werden. Ich möchte daran erinnern, dass mit der POST-Methode Daten gesendet und mit der GET-Methode Daten angefordert werden.
Um zu wissen, welche Methode für die Elemente der entsprechenden Website verwendet wird, können wir die Quelle der Seite überprüfen.
Zum Beispiel , Ein Tester kann den Quellcode für das Anmeldeformular überprüfen und herausfinden, welche Methode dafür verwendet wird. Dann kann die entsprechende HTML-Injection-Methode entsprechend ausgewählt werden.
beste Seite, um Anime kostenlos zu sehen
Reflektierte GET-Injektion tritt auf, wenn unsere Eingabe auf der Website angezeigt (reflektiert) wird. Angenommen, wir haben eine einfache Seite mit einem Suchformular, das für diesen Angriff anfällig ist. Wenn wir dann einen HTML-Code eingeben, wird dieser auf unserer Website angezeigt und gleichzeitig in das HTML-Dokument eingefügt.
Zum Beispiel geben wir einfachen Text mit HTML-Tags ein:
Reflektierte POST-HTML-Injektion ist etwas schwieriger. Es tritt auf, wenn ein schädlicher HTML-Code anstelle der korrekten POST-Methodenparameter gesendet wird.
Zum Beispiel , Wir haben ein Anmeldeformular, das für HTML-Angriffe anfällig ist. Die im Anmeldeformular eingegebenen Daten werden mit der POST-Methode gesendet. Wenn wir dann anstelle der richtigen Parameter HTML-Code eingeben, wird dieser mit der POST-Methode gesendet und auf der Website angezeigt.
Um einen Reflected POST HTML-Angriff durchzuführen, wird empfohlen, ein spezielles Browser-Plugin zu verwenden, das die gesendeten Daten fälscht. Eines davon ist das Mozilla Firefox-Plugin „Tamper Data“. Das Plugin übernimmt die gesendeten Daten und ermöglicht es dem Benutzer, diese zu ändern. Dann werden geänderte Daten gesendet und auf der Website angezeigt.
Zum Beispiel, Wenn wir ein solches Plugin verwenden, senden wir denselben HTML-Code oder suchen Sie nach Formularcode, wenn Sie mit etwas Komplizierterem testen möchten Geben Sie den zu suchenden Text ein
wie man eine Bittorrent-Datei öffnet
Wenn ein irgendwo gespeicherter HTML-Code angezeigt wird, kann der Tester sicher sein, dass dieser Injektionsangriff möglich ist. Dann kann ein komplizierterer Code ausprobiert werden - für Beispiel , um das gefälschte Anmeldeformular anzuzeigen.
Eine andere Lösung ist der HTML Injection Scanner. Das automatische Scannen gegen diesen Angriff kann viel Zeit sparen. Ich möchte darauf hinweisen, dass es im Vergleich zu anderen Angriffen nicht viele Tools für HTML-Injection-Tests gibt.
Eine mögliche Lösung ist jedoch die WAS-Anwendung. WAS kann als ein ziemlich starker Schwachstellenscanner bezeichnet werden, da er mit den verschiedenen Eingaben testet und nicht nur mit dem ersten Fehler stoppt.
Es ist hilfreich zum Testen, möglicherweise, wie im obigen Browser-Plugin „Manipulationsdaten“ erwähnt, werden gesendete Daten abgerufen, der Tester kann sie ändern und an den Browser senden.
Wir finden auch einige Online-Scan-Tools, bei denen Sie nur den Link der Website angeben müssen und das Scannen gegen HTML-Angriffe durchgeführt wird. Nach Abschluss des Tests wird die Zusammenfassung angezeigt.
Ich möchte darauf hinweisen, dass wir bei der Auswahl eines Scan-Tools darauf achten müssen, wie es die Ergebnisse analysiert und ob es genau genug ist oder nicht.
Es sollte jedoch beachtet werden, dass manuelles Testen nicht vergessen werden sollte. Auf diese Weise können wir sicher sein, welche genauen Eingaben versucht werden und welche genauen Ergebnisse wir erhalten. Auch auf diese Weise ist es einfacher, die Ergebnisse zu analysieren.
Aufgrund meiner Erfahrung in einer Software-Testkarriere möchte ich darauf hinweisen, dass wir für beide Testmethoden gute Kenntnisse über diese Art der Injektion haben sollten. Andernfalls wäre es schwierig, ein geeignetes Automatisierungswerkzeug auszuwählen und dessen Ergebnisse zu analysieren. Es wird auch immer empfohlen, das manuelle Testen nicht zu vergessen, da wir dadurch nur sicherer über die Qualität sind.
Wie verhindere ich HTML-Injection?
Es besteht kein Zweifel, dass der Hauptgrund für diesen Angriff die Unaufmerksamkeit und der Mangel an Wissen des Entwicklers ist. Diese Art von Injektionsangriff tritt auf, wenn die Eingabe und Ausgabe nicht ordnungsgemäß validiert werden. Daher ist die Hauptregel zur Verhinderung von HTML-Angriffen eine angemessene Datenüberprüfung.
Jede Eingabe sollte überprüft werden, ob sie Skriptcode oder HTML-Code enthält. Normalerweise wird geprüft, ob der Code ein spezielles Skript oder HTML-Klammern enthält.
Es gibt viele Funktionen, um zu überprüfen, ob der Code spezielle Klammern enthält. Die Auswahl der Prüffunktion hängt von der verwendeten Programmiersprache ab.
Es sollte daran erinnert werden, dass gut Sicherheitstests ist auch ein Teil der Prävention. Ich möchte darauf achten, dass HTML-Injection-Angriffe sehr selten sind, weniger Literatur zu lernen ist und weniger Scanner für automatische Tests ausgewählt werden müssen. Dieser Teil der Sicherheitstests sollte jedoch nicht verpasst werden, da Sie nie wissen, wann dies passieren kann.
Außerdem sollten sowohl der Entwickler als auch der Tester gute Kenntnisse darüber haben, wie dieser Angriff ausgeführt wird. Ein gutes Verständnis dieses Angriffsprozesses kann helfen, ihn zu verhindern.
Vergleich mit anderen Angriffen
Im Vergleich zu den anderen möglichen Angriffen wird dieser Angriff definitiv nicht als so riskant angesehen wie SQL-Injektion oder JavaScript-Injektionsangriff oder sogar XSS kann sein. Es wird nicht die gesamte Datenbank zerstört oder alle Daten aus der Datenbank gestohlen. Es sollte jedoch nicht als unbedeutend angesehen werden.
Wie bereits erwähnt, besteht der Hauptzweck dieser Art der Injektion darin, das Erscheinungsbild der angezeigten Website mit böswilligem Zweck zu ändern und dem Endbenutzer Ihre gesendeten Informationen oder Daten anzuzeigen. Diese Risiken können als weniger wichtig angesehen werden.
Eine Änderung des Erscheinungsbilds der Website kann jedoch den Ruf Ihres Unternehmens beeinträchtigen. Wenn ein böswilliger Benutzer das Erscheinungsbild Ihrer Website zerstören würde, könnte dies die Meinung des Besuchers zu Ihrem Unternehmen ändern.
Es sei daran erinnert, dass ein weiteres Risiko, das dieser Angriff auf die Website mit sich bringt, darin besteht, die Identität anderer Benutzer zu stehlen.
Wie bereits erwähnt, kann der böswillige Benutzer mit HTML Injection die gesamte Seite einfügen, die für den Endbenutzer angezeigt wird. Wenn der Endbenutzer dann seine Anmeldedaten auf der gefälschten Anmeldeseite angibt, werden diese an den böswilligen Benutzer gesendet. Dieser Fall ist natürlich der riskantere Teil dieses Angriffs.
Es sollte erwähnt werden, dass diese Art von Angriff zum Stehlen der Daten anderer Benutzer weniger häufig ausgewählt wird, da es viele andere mögliche Angriffe gibt.
Es ist jedoch dem XSS-Angriff sehr ähnlich, bei dem die Cookies des Benutzers und die Identität anderer Benutzer gestohlen werden. Es gibt auch XSS-Angriffe, die auf HTML basieren. Daher können Tests gegen XSS- und HTML-Angriffe sehr ähnlich sein und zusammen durchgeführt werden.
Fazit
Da HTML Injection nicht so beliebt ist wie andere Angriffe, kann es als weniger riskant angesehen werden als andere Angriffe. Daher wird das Testen gegen diese Art der Injektion manchmal übersprungen.
Es fällt auch auf, dass es definitiv weniger Literatur und Informationen zu HTML Injection gibt. Daher können Tester entscheiden, diese Art von Tests nicht durchzuführen. In diesem Fall werden die HTML-Angriffsrisiken jedoch möglicherweise nicht ausreichend bewertet.
Wie wir in diesem Tutorial analysiert haben, kann bei dieser Art der Injektion das gesamte Design Ihrer Website zerstört oder sogar die Anmeldedaten des Benutzers gestohlen werden. Daher wird dringend empfohlen, HTML Injection in Sicherheitstests einzubeziehen und gute Kenntnisse zu investieren.
Sind Sie auf eine typische HTML-Injection gestoßen? Fühlen Sie sich frei, Ihre Erfahrungen in den Kommentaren unten zu teilen.
Literatur-Empfehlungen
- Ausführliche Eclipse-Tutorials für Anfänger
- Tutorial zum Testen von SQL-Injektionen (Beispiel und Verhinderung von SQL-Injektionsangriffen)
- Python DateTime Tutorial mit Beispielen
- XSS-Angriffs-Tutorial (Cross Site Scripting) mit Beispielen, Typen und Prävention
- JavaScript Injection Tutorial: Testen und Verhindern von JS Injection-Angriffen auf der Website
- Unix Shell Scripting Tutorial mit Beispielen
- Selenium Find Element By Text Tutorial mit Beispielen
- Python-Hauptfunktions-Tutorial mit praktischen Beispielen