Cross-Site-Scripting "DOM-basiertes" Beispiele: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „=Cross-Site-Scripting "Reflected"= =Um was geht es?= *DOM-basiertes Cross-Site-Scripting/XSS ==Link== *http://opfer.secure.local/scripts/xss-dom.html“) |
|||
| (16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | =Cross-Site-Scripting " | + | = Cross-Site-Scripting "DOM-basiert" = |
| − | |||
| − | |||
| − | ==Link== | + | = Um was geht es? = |
| − | *http://opfer.secure.local/scripts/xss-dom.html | + | |
| + | * [[DOM-basiertes Cross-Site-Scripting/XSS]] | ||
| + | |||
| + | == Link == | ||
| + | |||
| + | * http://opfer.secure.local/scripts/xss-dom.html | ||
| + | |||
| + | [[Bild:dom-xss-1.png]] | ||
| + | |||
| + | == 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 | ||
| + | |||
| + | [[Bild:dom-xss-2.png]] | ||
| + | |||
| + | == Exploit über die URL == | ||
| + | |||
| + | * http://opfer.secure.local/scripts/xss-dom.html?default=%3Cscript%3Ealert(%22Hacked%20by%20Xinux%22)%3C/script%3E | ||
| + | |||
| + | [[Bild:dom-xss-3.png]] | ||
| + | |||
| + | = HTML Code der Seite = | ||
| + | |||
| + | <syntaxhighlight lang="html"> | ||
| + | <!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> | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | = 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 | ||
| + | |||
| + | <syntaxhighlight lang="html"> | ||
| + | <!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> | ||
| + | </syntaxhighlight> | ||
Aktuelle Version vom 7. März 2023, 11:56 Uhr
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>


