Cross-Site-Scripting "Reflected" Beispiele: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 43: Zeile 43:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
=Wie können wir soetwas Vermeiden?=
 
=Wie können wir soetwas Vermeiden?=
 +
<syntaxhighlight lang=html>
 +
<!DOCTYPE html>
 +
<html>
 +
        <body>
 +
        <h1>Vulnerability: Reflected Cross Site Scripting (XSS)</h1>
 +
                <form name="XSS" action="#" method="GET">
 +
                        <p>
 +
                                What's your name?
 +
                                <input type="text" name="name">
 +
                                <input type="submit" value="Submit">
 +
                        </p>
 +
                </form>
 +
<?php
 +
if( $_GET[ 'name' ] != NULL && !str_contains($_GET[ 'name' ], "<script")  ) {
 +
    echo 'Hello ' . $_GET[ 'name' ]  ;
 +
}
 +
?>
 +
        </body>
 +
</html>
 +
 +
</syntaxhighlight>

Version vom 6. März 2023, 14:45 Uhr

Cross-Site-Scripting "Reflected"

Um was geht es?

Link

Eingabe Skript

Cross-Site-Scripting-Reflected-1.png

Normale Verhaltensweise

Cross-Site-Scripting-Reflected-2.png

Einfügen und generieren des Schadcodes

<script>alert("xss")</script>

Cross-Site-Scripting-Reflected-3.png

Dieses Popup Fenster geht nun auf

  • Es wird auf jedem Rechner aufgehen der den generierten Link aufruft

Cross-Site-Scripting-Reflected-4.png

Dieser generierter Link können wir nun an die Opfer versenden

Hier nun der Code zu diesem Beispiel

  • Bei diesem Eingabeformular wird der eingegebene Text unterhalb des Eingabefeldes wieder ausgegeben.
<!DOCTYPE html>
 <html>
        <body>
        <h1>Vulnerability: Reflected Cross Site Scripting (XSS)</h1>
                <form name="XSS" action="#" method="GET">
                        <p>
                                What's your name?
                                <input type="text" name="name">
                                <input type="submit" value="Submit">
                        </p>
                </form>
<?php
if( $_GET[ 'name' ] != NULL ) {
    echo 'Hello ' . $_GET[ 'name' ]  ;
}
?>
         </body>
 </html>

Wie können wir soetwas Vermeiden?

<!DOCTYPE html>
 <html>
        <body>
        <h1>Vulnerability: Reflected Cross Site Scripting (XSS)</h1>
                <form name="XSS" action="#" method="GET">
                        <p>
                                What's your name?
                                <input type="text" name="name">
                                <input type="submit" value="Submit">
                        </p>
                </form>
<?php
if( $_GET[ 'name' ] != NULL && !str_contains($_GET[ 'name' ], "<script")  ) {
    echo 'Hello ' . $_GET[ 'name' ]  ;
}
?>
         </body>
 </html>