Cross-Site-Scripting "DOM-basiertes" Beispiele

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Cross-Site-Scripting "DOM-basiert"

Um was geht es?

Link

Dom-xss-1.png

Normale Verhaltensweise

Dom-xss-2.png

Exploit über die URL

Dom-xss-3.png

HTML Code der Seite

<!DOCTYPE html>
<html>
<body>
<h1>DOM Basiertes Cross Site Scripting (XSS)</h1>
Der Inhalt dieser Seite wird statisch generiert.
<script>
if (document.location.href.indexOf("default=") >= 0) {
        var text = document.location.href.substring(document.location.href.indexOf("default=")+8);
        document.write(decodeURI(text));
}
</script>
</body>
</html>

Wie können wir so etwas Vermeiden?

Auf der Seite des Clients

  • JavaScript auf nicht vertrauenswürdigen Seiten abschalten

Auf Seite des Programmierers

  • <script>-Tags aus dem Parameter entfernen
<!DOCTYPE html>
<html>
<body>
<h1>DOM Basiertes Cross Site Scripting (XSS)</h1>
Der Inhalt dieser Seite wird statisch generiert.
<script>
if (document.location.href.indexOf("default=") >= 0) {
        var text = document.location.href.substring(document.location.href.indexOf("default=")+8);
        var parsed = decodeURI(text)
        var parsed = parsed.replace("<script>", "Achtung JavaScript Element! ")
        var parsed = parsed.replace("<\/script>", " Achtung JavaScript Element! ")
        document.write(parsed);
}
</script>
</body>
</html>