Was ist HTML-Injection?

青灯夜游
青灯夜游Original
2021-06-21 11:27:216192Durchsuche

HTML-Injection ist eine Schwachstelle, eine Art Netzwerkangriff, der auftritt, wenn eine Webseite nicht in der Lage ist, vom Benutzer bereitgestellte Eingaben zu bereinigen oder die Ausgabe zu validieren, sodass ein Angreifer seine eigene Nutzlast fälschen und bösartigen HTML-Code über eine anfällige Feldanwendung zur Änderung einschleusen kann Webseiteninhalte und sogar einige sensible Daten abrufen.

Was ist HTML-Injection?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, HTML5-Version, Dell G3-Computer.

Was ist HTML-Injection?

HTML-Injection (Hypertext-Markup-Language-Injection) Chinesisch bedeutet „Hypertext-Markup-Language-Injection“. Wie wir alle wissen, enthält HTML verschiedene Tags Die übermittelten Daten können andere HTML-Tags enthalten, und diese Daten werden vom Server zufällig als normale HTML-Tags angezeigt. Das Endergebnis ist, dass illegale Tags analysiert werden (können auf Phishing, Social Engineering usw. angewendet werden), was großen Schaden anrichtet andere Benutzer. Große Wirkung.

Ein Angreifer kann seine eigene Nutzlast fälschen und über anfällige Felder bösartigen HTML-Code in die Anwendung einschleusen, wodurch der Inhalt der Webseite verändert und sogar an einige sensible Daten gelangt. Der Unterschied zwischen HTML-Injection und XSS Tags zum Ausführen von JavaScript Skriptprogramme wie JavaScript können über JavaScript vertrauliche Daten und eine Reihe gefährlicher Vorgänge abrufen, während die HTML-Injection nur HTML-Tags zum Ändern des Seiteninhalts verwendet.

HTML-Injection – Reflected (GET)

Reflected HTML-Injection (GET-Methode)

Vorname wird ausgefüllt html test und stellte fest, dass die HTML-Buchstaben rot wurden, was darauf hinweist, dass der von uns geschriebene HTML-Code erfolgreich ausgeführt wurde und dass auf dieser Website eine HTML-Injektion vorliegt.

HTML-Injektion – Reflektiert (POST)

Was ist HTML-Injection?

Reflektierte HTML-Injektion (POST-Methode)

Hinweis: Nach dem Senden von Daten in der GET-Methode zeigt die Adressleiste des Browsers die übermittelten Daten an, während sie sich im POST-Modus befinden Methode wird nicht angezeigt.

Gleiche wie die GET-Methode oben
Geben Sie

html2

für Vorname ein, füllen Sie test für Nachname aus und stellen Sie fest, dass die Buchstaben html2 grün werden, was anzeigt, dass der von uns geschriebene HTML-Code erfolgreich ausgeführt wurde, und Auf dieser Website gibt es eine HTML-Injection.


HTML-Injektion – Reflektiert (Aktuelle URL)


Was ist HTML-Injection?

Reflektierte HTML-Injektion (Aktuelle URL)

Erstens analysieren wir den Quellcode

Kerncode

 <div>

    <h1>HTML Injection - Reflected (URL)</h1>

    <?php  echo "<p align=\"left\">Your current URL: <i>" . $url . "</i>";?>

</div>

Da ist ein Stück PHP drin dieser Code Der Code führt die HTML-Anweisung aus, gibt einen Abschnitt mit „Ihre aktuelle URL:“-Zeichen aus und ruft die Variable $url auf, um dem Ausgabeinhalt zu folgen.

Schutzcode

$url= "";

        
switch($_COOKIE["security_level"])
{

    case "0" :

        // $url = "http://" . $_SERVER["HTTP_HOST"] . urldecode($_SERVER["REQUEST_URI"]);
        $url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];                  //$url= &#39;&#39;接受的参数来自请求头HOST和URL
break;

    case "1" :

        $url = "<script>document.write(document.URL)</script>";
        break;

    case "2" :

        $url = "http://" . $_SERVER["HTTP_HOST"] . xss_check_3($_SERVER["REQUEST_URI"]);
        break;

    default :

        // $url = "http://" . $_SERVER["HTTP_HOST"] . urldecode($_SERVER["REQUEST_URI"]);
        $url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];               
        break;

}


<select name="security_level">
            
            <option value="0">low</option>
            <option value="1">medium</option>
            <option value="2">high</option> 
            
        </select>

Lesen Sie den Verteidigungscode und Sie werden wissen, dass der aufgerufene Verteidigungscode je nach Schwierigkeitsgrad der Einstellungen unterschiedlich ist.

(1) NIEDRIG

Wenn Sie die Stufe auf „Niedrig“ setzen, führen Sie die folgende Anweisung aus: ] hier" Es geht darum, den vollständigen Adresspfad hinter dem Domänennamen abzurufen

Ändern Sie die Hostparameter durch Burp-Paketerfassung. Änderungen finden Sie auf der Seite


(2) mittel

Wann Wenn Sie die Stufe auf „Mittel“ setzen, führen Sie die folgende Anweisung aus:

$url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];

Was ist HTML-Injection?Das Dokumentobjekt hier stellt das gesamte HTML-Dokument dar und kann für den Zugriff auf alle Elemente auf der Seite verwendet werden.
Was ist HTML-Injection?document.write() dient zum dynamischen Schreiben von Inhalten Die Seite

document.URL dient dazu, das URL-Attribut so festzulegen, dass eine andere Seite im selben Fenster geöffnet wird

(3) hoch

Wenn Sie die Ebene auf hoch setzen, führen Sie die folgende Anweisung aus

$url = "<script>document.write(document.URL)</script>";


Der xss_check_3 Hier wird die Funktion aufgerufen, um den Teil hinter dem Host zu filtern, sodass die Injektion nicht möglich ist

Hinweis: Die reflektierende Seite ist nach der Aktualisierung nicht mehr vorhanden, während der Speichertyp in die Serverdatenbank geschrieben wird und nach der Aktualisierung weiterhin vorhanden ist.

Daher ist der Speichertyp viel schädlicher als der reflektierende Typ.

Geben Sie

HTML

in das Textfeld ein, um das p-Tag erfolgreich zu analysieren und anzuzeigen, dass eine HTML-Injektion vorliegt.
Was ist HTML-Injection?

Empfohlenes Tutorial: „HTML-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist HTML-Injection?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet js?Nächster Artikel:Was bedeutet js?