"Ich habe versucht, eine Bulletin -Board -App zu erstellen, die HTML -Tags verwenden kann!"
Was wäre, wenn eine Arbeit eines Anfängeringenieurs nur einem Zeilenposten "übernommen" würde
werden wir eine Demonstration unter Verwendung eines Beispiels für
Cross-Site-Skripte (XSS) die Grundlagen der Sicherheit, vorstellen und erklären, wie gefährdete Standorte tatsächlich angegriffen werden
🎬Wenn Sie sich das Video ansehen möchten, klicken Sie hier.
▶ Sehen Sie sich die Demo auf YouTube an
Wenn Sie es tatsächlich versuchen möchten, klicken Sie hier
🔗 Github Repository (XSS -Demo -Code).
*Dieser Inhalt dient zu
Bildungszwecken und Sicherheitsbewusstsein Es ist nicht beabsichtigt, tatsächliche Dienste oder Dritte anzugreifen.
Was ist XSS (Cross Site Scripting)?
XSS (Cross-Site Scripting) ist ein Angriff, bei dem böswillige
Skripte (z. B. JavaScript) auf eine Webseite injiziert und ausgeführt werden
Wenn beispielsweise der folgende Code im Abschnitt "Message Board oder im Kommentar" veröffentlicht wird,
<img src="invalid.jpg" onerror="alert('XSS')">
ein anderer Benutzer die Seite sieht gestohlen werden.
Mögliche Schäden durch XSS verursacht
- Diebstahl von Benutzer Cookies und Sitzungsinformationen
- Eine egoistische Seitenumleitung (Phishing)
- Web -App -UI -Manipulationen und Einfügen gefälschter Formulare
- Werbung betrügerisches Display und führen zu betrügerischen Links
Warum kommt XSS vor?
XSS tritt auf , wenn ein Entwickler "die Benutzereingabe direkt auf dem Bildschirm anzeigt".
- Was der Benutzer gesendet hatoder
Ich habe es gerade indie Innerhtml
einbettet - "Sie können HTML frei verwenden", damit die Tags eingegeben werden können.
- Keine Filter- oder Desinfektionsverarbeitung zur Verhinderung der JavaScript -Ausführung
Mit diesem Design können illegale Quellcode in HTML "injizieren"
Gefährliche Code -Beispiele
postcontainer.innerhtml += `<p> $ {userInput}</p> `;
Auf den ersten Blick sieht es nach einem normalen Anzeigvorgang aus, aber der UserInput
den folgenden Code enthält?
<img src="invalid.jpg" onerror="alert('XSS')">
Das
Das Tag gibt ein Bild an, das nicht existiert und einen Ladefehler verursacht, und
zu diesem Zeitpunkt wird Alert ('XSS'
in Oneror
Dieses Beispiel der Warnung
harmlos aussehen
<img src="x" onerror="location='https://hack-lab-256.com/'">
Dies kann
realistische Schäden , z. B. Benutzer, die das Message Board öffnen, automatisch zu böswilligen Websites umgeleitet Wenn Sie Cookies erhalten, können Sie sich natürlich nicht autorisiert anmelden.
Wie finden Hacker Angriffe?
Aktuelle Angreifer (Hacker) beobachten und untersuchen veröffentlichte Web -Apps, um Schwachstellen zu identifizieren.
- Überprüfen Sie die URL und das Formular
⇒ Gibt es Eingabefelder? Kann ich HTML -Tags eingeben? - Überprüfen Sie die Ergebnisse des Beitrags
⇒"
Versuchen Sie eine Testzeichenfolge wie"
- Finden Sie den Fehler eines Entwicklers
⇒ Gibt es Teile, dieInnerhtml
Gibt es Bereiche, die nicht gefiltert oder entkommen wurden? - Schreiben Sie den Vorbereitungscode
⇒
Bereiten Sie beispielsweise Kabel vor, die die Lücken schwer zu erkennen oder zu nutzen sind.
Die typische XSS -Angriffsfolge ist wie folgt:
Natürlich greifen sie auf eine Vielzahl anderer Arten an.
Arten | Angriffscode | Funktionen und Notizen |
---|---|---|
タグ | <script>alert('XSS')</script> | Ein Klassiker unter den Klassikern. In letzter Zeit ist es oft im Innerhtml |
<img onerror> | <img src="x" onerror="alert('XSS')"> | Hohe Erfolgsrate. Warnfeuer beim Ausladen des Bildes schlägt |
<svg onload> | <svg onload="alert('XSS')"></svg> | SVG ist よりブロックされにくい。シンプルで強力 |
Etikett | <iframe src="javascript:alert('XSS')"></iframe> | In einigen Browsern läuft es nicht, aber in älteren Umgebungen wirksam. |
Ich habe tatsächlich versucht, es mit XSS zu hacken !!
Jetzt werde ich tatsächlich versuchen, Web -Apps mit XSS zu hacken.
Der Code wird veröffentlicht, daher denke ich, dass es gut wäre, wenn Sie es versuchen könnten, ihn auf Ihrem eigenen PC auszuführen.
*Über Docker verteilt.
Wenn Sie es tatsächlich versuchen möchten, klicken Sie hier
🔗 Github Repository (XSS -Demo -Code).
*Dies ist eine Demonstration für Sicherheitserziehung. Dieses Video empfiehlt keinen autorisierten Zugriff.
Eine neue Ingenieur -Herausforderung: Wir haben ein Bulletin -Board erstellt, mit dem Sie HTML -Tags verwenden können!
Ich habe jetzt seit sechs Monaten programmiert und bin immer noch Anfängeringenieur.
Ich dachte: "Ich möchte eine Web -App erstellen, die mit meinen eigenen Händen bewegt werden kann!" und beschlossen, eine Message Board -App zu erstellen.Ein super einfaches Design, das wie bei der Veröffentlichung angezeigt wird.
Darüber hinaus haben wir es auch ermöglicht, HTML -Tags zu verwenden, um das Erscheinungsbild anzupassen.glücklich, als es implementiert und
ernsthaft gedacht wurde: "Wird das nicht ein bisschen nach Summen gehen?"
Mit dieser Art von Geschichte haben wir eine "Bulletin Board -App" erstellt, die HTML -Tags verwenden kann.

Hauptmerkmale:
- Geben Sie Ihren Namen und Ihre Nachricht in das Postformular ein und senden Sie ihn. Er wird unmittelbar unten angezeigt
- Nachrichten werden mit HTML -Tags angezeigt, sodass Sie die Textfarbe und -größe ändern und Bilder anzeigen können.
- Post -Inhalt wird auf dem Server gespeichert und wird auch nach dem Nachladen der Seite weiter angezeigt
Sie können die Farbe des Textes wie diesen ändern!

Tatsächliches Verhalten
- Sie können Tags wie
fettem
oderroten Text
- "Playable Bulletin Board", das auf den ersten Blick Spaß macht, sich anzupassen
Dieses hohe Freiheitsgrad führt jedoch zu einer "einzigen Fallstrick" ...
Hacker erscheinen
Er fand ein Message Board.
Es sieht einfach aus und jeder kann frei posten.Wenn Sie sich das Postformular ansehen, geben Sie einfach Ihren Namen und Ihre Nachricht ein.
Darüber hinaus scheint der veröffentlichte Inhalt als HTML angezeigt zu werden."Hmm...
Wird der Tag passieren?
"Das ist も通っちゃったりして?」Er schaut leicht durch die Quelle und öffnet Devtools in seinem Browser.
AnscheinendInnerhtml
verwendet und nicht gefiltert.── "Ich sehe. Das ist ... kann verwendet werden."
Mit dieser Art von Geschichte werden wir versuchen, die Message Board -App zu skotieren.
Überprüfen Sie, welche Tags vorbeikommen
Dies ist ein Bulletin -Board, das mit HTML -Tags angepasst werden kann. Ich denke, Sie können HTML -Tags verwenden. Um zu sehen, ob es Beschränkungen gibt, werde ich versuchen, ein HTML -Tag auszuführen, das XSS verwenden kann.
<script>alert('xss')</script> ← Wird das Skript -Tag übergeben?<img src="x" onerror="alert('xss')"> ← Funktioniert das Ereignis?<svg onload="alert('xss')"></svg> ← Führen Sie Attribute von SVG -Tags aus<iframe src="https://hack-lab-256.com/"></iframe> ← Ist Iframe eingebettet? <math><mtext></mtext><script>alert(1)</script> </math>← Überprüfen Sie das Skript -Tag -Bypass
Zuerst habe ich ein Skript -Tag gepostet.
<script>alert('xss')</script>

Dies wurde angezeigt, aber es wurden keine Warnungen ausgestellt.
Dies liegt an der Spezifikation des Browsers, dass Skript -Tags in Innerhtml nicht ausgeführt werden
Als nächstes habe ich versucht, ein Iframe -Tag zu posten.
<iframe src="https://hack-lab-256.com/"></iframe>

Diese Seite wurde erfolgreich eingebettet .
Es ist kein XSS, aber es könnte ein Sprungbrett für Phishing und Clickjacking
<iframe src="javascript:alert('XSS')"></iframe>

Überraschenderweise wurde eine Warnung ausgeführt.
Es wird oft in normalen Browsern blockiert, aber
auf diesem Message Board funktioniert SRC = "JavaScript: ..."

Ich werde auch das IMG -Tag veröffentlichen.
<img src="x" onerror="alert('img-xss')">


Dies ist eine der häufig verwendeten XSS -Techniken und Ausführung von JavaScript bei einem Bildlastfehler .
Als ich gepostet habe, wurde ein Alarm abgefeuert, als ich die Seite ansah.
Überprüfen Sie auch den Quellcode
Wir konnten im vorherigen Experiment bestätigen, dass XSS tatsächlich möglich ist, aber um sicherzugehen, überprüfen Sie den Quellcode
Wenn es in clientseitigem JavaScript implementiert ist, können Sie den Code auch direkt von Devtools anzeigen .
In dem Code
wurde der Prozess verwendet , den Inhalt des Posts wie der Innerhtml
einzuführen

können Sie feststellen, dass die veröffentlichten Nachrichten auch auf dem Bildschirm mit Tags angezeigt werden, ohne zu sanieren

Zu diesem Zeitpunkt ist klar geworden
, dass das Message Board eine "skriptespezifische Umgebung" ist. Mit anderen Worten, es scheint sicher zu sagen, dass Sie bereit sind, anzugreifen
Ausführen: Versuchen Sie, mit XSS auf Ihre Website umzuleiten
In der bisherigen Aufklärung stellten wir fest, dass das Message Board Beiträge mit HTML -Tags wie es ist und
dass die JavaScript -Ereignisattribute (wie OnError) nicht blockiert sind.
Also werde ich den Code unten veröffentlichen.
<img src="x" onerror="location='https://hack-lab-256.com/'">
Dieser Mechanismus beinhaltet den Versuch, ein Bild zu laden, das nicht existiert und einen Fehler verursacht, und
OnError
-Attribut wird ausgeführt, wenn dieser Fehler auftritt

Nachdem ich meinen Beitrag eingereicht hatte, öffnete ich die Message Board-Seite und
es automatisch zu https://hack-lab-256.com/
Es wird ein Angriff festgelegt, bei dem der Benutzer nichts als einfach das Message Board betrieben hat, und der Angreifer ist gezwungen, auf die vom Angreifer festgelegte Site zu wechseln

Ab diesem Zeitpunkt steht diese Website nicht zur Verfügung. Dieses Phänomen hat zum erzwungenen Übergang zu diesem Standort geführt.
kann nur eine Codezeile des Gesamtvertrauens des Message Board Schaden
Vorheriger Fall: XSS trat auch auf YouTube auf
Im Juli 2010 (derzeit überarbeitet)
wurde der Kommentarbereich zu diesem Zeitpunkt auf YouTube hinzugefügt タグを含めることで JavaScript が実行されてしまうという、深刻なXSS脆弱性が存在していました。
Sicherheitsdetails
Auf YouTube befindet es sich ursprünglich im Kommentarbereich. などの危険なタグが入力された場合、
自動で無効化(エスケープ)する仕組みになっていました。
Die Implementierung damals war jedoch die erste タグだけが正しくエスケープされ、2つ目以降はそのまま通ってしまうという重大な処理漏れがあったのです。
✅ Multiple タグを投稿すれば、実行可能なコードが差し込めた
Was eigentlich passiert ist
Kurz nachdem die Verwundbarkeit veröffentlicht worden war, haben bösartige Benutzer das Skript in zahlreiche Video -Seiten eingebettet.
- Zeigen Sie gefälschte Popup -Nachrichten
- Zeigt einen Dialog an, der einen gefälschten Nachrichtenartikel imitiert
- Umleitung zu einer böswilligen externen Seite
Es wird gesagt, dass einige Codes Cookie -Informationen gestohlen und gefälschte Anmeldeseiten angezeigt wurden.
Was ist mit dieser Demo gemeinsam
Die XSS -Demo, die ich in diese Zeit gegangen bin und die YouTube -Fallstudie ist in der Struktur sehr ähnlich.
- "Einbettencode in das Postfeld" einbetten "
- "JavaScript läuft beim Betrachten"
- "Weiterleitungen und andere Schäden treten auf."
Obwohl diese Demonstration den Fluchtprozess absichtlich ausgelassen hat, streben die tatsächlichen Angreifer solche "geringfügigen Filterfehler .
In der Vergangenheit wurden viele XSS -Schwachstellen entdeckt, und selbst große Webdienste sind keine Ausnahme .
Wenn Sie interessiert sind, lesen Sie bitte andere Beispiele.
Endlich
haben wir gezeigt, wie
ein XSS -Angriff durchgeführt wurde, bei dem eine Webseite übernommen werden konnte, indem nur eine Codezeile auf einem einfachen Bulletin -Board veröffentlicht wurde, das HTML -Tags verwenden kann
XSS wird oft als "es geschieht, weil es eine von Anfängern erstellte App ist, aber
eine sehr realistische Bedrohung den wichtigsten Diensten wie YouTube und Google in der Vergangenheit gesehen wurde .
Heutzutage können wir automatisch Apps mit AI generieren.
Es wird immer wichtiger zu sein, sich sicher zu sein, ob es sicher funktioniert , anstatt nur "einfach zu bewegen, es ist in Ordnung
Selbst Dienste, die Sie erstellt haben, können problemlos in nur einer Zeile übernommen werden
📺 YouTube führt diesen Inhalt in einem leicht verständlichen Video ein.
Wir werden weiterhin Sicherheitserklärungen und Demos abgeben.
Wenn Sie also die neuesten Informationen nicht verpassen möchten, abonnieren Sie bitte unseren Kanal!
🎬Wenn Sie sich das Video ansehen möchten, klicken Sie hier.
▶ Sehen Sie sich die Demo auf YouTube an
Wenn Sie es tatsächlich versuchen möchten, klicken Sie hier
🔗 Github Repository (XSS -Demo -Code).