Cross-Site-Scripting "DOM-basiertes" Beispiele
Zur Navigation springen
Zur Suche springen
Cross-Site-Scripting "DOM-basiert"
Um was geht es?
Link
Normale Verhaltensweise
- Über den GET-Parameter default wird der Inhalt dieser Seite generiert
- http://opfer.secure.local/scripts/xss-dom.html?default=Bitte%20auf%20dieser%20Seite%20JavaScript%20ausschalten
Exploit über die URL
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>


