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

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Cross-Site-Scripting "Persistent"= =Um was geht es?= *Persistentes Cross-Site-Scripting/XSS ==Link== *http://opfer/xss-persistent.php“)
 
Zeile 3: Zeile 3:
 
*[[Persistentes Cross-Site-Scripting/XSS]]
 
*[[Persistentes Cross-Site-Scripting/XSS]]
 
==Link==
 
==Link==
*http://opfer/xss-persistent.php
+
*http://opfer.secure.local/scripts/xss-persistent.php
 +
==Eingabe Skript==
 +
[[Datei:Cross-Site-Scripting-Reflected-11.png]]
 +
==Normale Verhaltensweise==
 +
[[Datei:Cross-Site-Scripting-Reflected-12.png]]
 +
==Einfügen und generieren des Schadcodes==
 +
<script>alert("Hacked by Xinux")</script>
 +
[[Datei:Cross-Site-Scripting-Reflected-13.png]]
 +
 
 +
==Dieses Popup Fenster geht nun auf==
 +
*Es wird auf jedem Rechner aufgehen der den generierten Link aufruft
 +
[[Datei:Cross-Site-Scripting-Reflected-14.png]]
 +
 
 +
=Dieser generierter Link können wir nun an die Opfer versenden=
 +
*http://opfer.secure.local/scripts/xss-reflected.php?name=%3Cscript%3Ealert%28%22Hacked%20by%20Xinux%22%29%3C%2Fscript%3E#
 +
 
 +
=Hier nun der Code zu diesem Beispiel=
 +
*Bei diesem Eingabeformular wird der eingegebene Text unterhalb des Eingabefeldes wieder ausgegeben.
 +
<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">
 +
               
 +
==Link==
 +
*http://opfer.secure.local/scripts/xss-reflected.php
 +
 
 +
==Eingabe Skript==
 +
[[Datei:Cross-Site-Scripting-Reflected-11.png]]
 +
==Normale Verhaltensweise==
 +
[[Datei:Cross-Site-Scripting-Reflected-12.png]]
 +
==Einfügen und generieren des Schadcodes==
 +
<script>alert("Hacked by Xinux")</script>
 +
[[Datei:Cross-Site-Scripting-Reflected-13.png]]
 +
 
 +
==Dieses Popup Fenster geht nun auf==
 +
*Es wird auf jedem Rechner aufgehen der den generierten Link aufruft
 +
[[Datei:Cross-Site-Scripting-Reflected-14.png]]
 +
 
 +
=Dieser generierter Link können wir nun an die Opfer versenden=
 +
*http://opfer.secure.local/scripts/xss-reflected.php?name=%3Cscript%3Ealert%28%22Hacked%20by%20Xinux%22%29%3C%2Fscript%3E#
 +
 
 +
=Hier nun der Code zu diesem Beispiel=
 +
*Bei diesem Eingabeformular wird der eingegebene Text unterhalb des Eingabefeldes wieder ausgegeben.
 +
<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 ) {
 +
    echo 'Hello ' . $_GET[ 'name' ]  ;
 +
}
 +
?>
 +
        </body>
 +
</html>
 +
 
 +
</syntaxhighlight>
 +
=Wie können wir so etwas Vermeiden?=
 +
*Wir fügen der If Klausel ein weiteres Argument mit, nämlich das die Eingabe nur ausgeführt werden soll, wenn kein "<script" enthalten ist
 +
<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">
 +
                     
 +
==Link==
 +
*http://opfer.secure.local/scripts/xss-reflected.php
 +
 
 +
==Eingabe Skript==
 +
[[Datei:Cross-Site-Scripting-Reflected-11.png]]
 +
==Normale Verhaltensweise==
 +
[[Datei:Cross-Site-Scripting-Reflected-12.png]]
 +
==Einfügen und generieren des Schadcodes==
 +
<script>alert("Hacked by Xinux")</script>
 +
[[Datei:Cross-Site-Scripting-Reflected-13.png]]
 +
 
 +
==Dieses Popup Fenster geht nun auf==
 +
*Es wird auf jedem Rechner aufgehen der den generierten Link aufruft
 +
[[Datei:Cross-Site-Scripting-Reflected-14.png]]
 +
 
 +
=Dieser generierter Link können wir nun an die Opfer versenden=
 +
*http://opfer.secure.local/scripts/xss-reflected.php?name=%3Cscript%3Ealert%28%22Hacked%20by%20Xinux%22%29%3C%2Fscript%3E#
 +
 
 +
=Hier nun der Code zu diesem Beispiel=
 +
*Bei diesem Eingabeformular wird der eingegebene Text unterhalb des Eingabefeldes wieder ausgegeben.
 +
<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 ) {
 +
    echo 'Hello ' . $_GET[ 'name' ]  ;
 +
}
 +
?>
 +
        </body>
 +
</html>
 +
 
 +
</syntaxhighlight>
 +
=Wie können wir so etwas Vermeiden?=
 +
*Wir fügen der If Klausel ein weiteres Argument mit, nämlich das die Eingabe nur ausgeführt werden soll, wenn kein "<script" enthalten ist
 +
<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 && stripos($_GET['name'], "<script") !== 0 ) {
 +
echo 'Hello ' . $_GET[ 'name' ]  ;
 +
}
 +
?>
 +
        </body>
 +
</html>
 +
</syntaxhighlight>
 +
</p>
 +
                </form>
 +
<?php
 +
if( $_GET[ 'name' ] != NULL && stripos($_GET['name'], "<script") !== 0 ) {
 +
echo 'Hello ' . $_GET[ 'name' ]  ;
 +
}
 +
?>
 +
        </body>
 +
</html>
 +
</syntaxhighlight>
 +
      </p>
 +
                </form>
 +
<?php
 +
if( $_GET[ 'name' ] != NULL ) {
 +
    echo 'Hello ' . $_GET[ 'name' ]  ;
 +
}
 +
?>
 +
        </body>
 +
</html>
 +
 
 +
</syntaxhighlight>
 +
=Wie können wir so etwas Vermeiden?=
 +
*Wir fügen der If Klausel ein weiteres Argument mit, nämlich das die Eingabe nur ausgeführt werden soll, wenn kein "<script" enthalten ist
 +
<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 && stripos($_GET['name'], "<script") !== 0 ) {
 +
echo 'Hello ' . $_GET[ 'name' ]  ;
 +
}
 +
?>
 +
        </body>
 +
</html>
 +
</syntaxhighlight>

Version vom 7. März 2023, 10:19 Uhr

Cross-Site-Scripting "Persistent"

Um was geht es?

Link

Eingabe Skript

Cross-Site-Scripting-Reflected-11.png

Normale Verhaltensweise

Cross-Site-Scripting-Reflected-12.png

Einfügen und generieren des Schadcodes

<script>alert("Hacked by Xinux")</script>

Cross-Site-Scripting-Reflected-13.png

Dieses Popup Fenster geht nun auf

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

Cross-Site-Scripting-Reflected-14.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">
                 
==Link==
*http://opfer.secure.local/scripts/xss-reflected.php

==Eingabe Skript==
[[Datei:Cross-Site-Scripting-Reflected-11.png]]
==Normale Verhaltensweise==
[[Datei:Cross-Site-Scripting-Reflected-12.png]]
==Einfügen und generieren des Schadcodes==
 <script>alert("Hacked by Xinux")</script>
[[Datei:Cross-Site-Scripting-Reflected-13.png]]

==Dieses Popup Fenster geht nun auf==
*Es wird auf jedem Rechner aufgehen der den generierten Link aufruft
[[Datei:Cross-Site-Scripting-Reflected-14.png]]

=Dieser generierter Link können wir nun an die Opfer versenden=
*http://opfer.secure.local/scripts/xss-reflected.php?name=%3Cscript%3Ealert%28%22Hacked%20by%20Xinux%22%29%3C%2Fscript%3E#

=Hier nun der Code zu diesem Beispiel=
*Bei diesem Eingabeformular wird der eingegebene Text unterhalb des Eingabefeldes wieder ausgegeben.
<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 ) {
    echo 'Hello ' . $_GET[ 'name' ]  ;
}
?>
         </body>
 </html>

Wie können wir so etwas Vermeiden?

  • Wir fügen der If Klausel ein weiteres Argument mit, nämlich das die Eingabe nur ausgeführt werden soll, wenn kein "<script" enthalten ist
<!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">
                       
==Link==
*http://opfer.secure.local/scripts/xss-reflected.php

==Eingabe Skript==
[[Datei:Cross-Site-Scripting-Reflected-11.png]]
==Normale Verhaltensweise==
[[Datei:Cross-Site-Scripting-Reflected-12.png]]
==Einfügen und generieren des Schadcodes==
 <script>alert("Hacked by Xinux")</script>
[[Datei:Cross-Site-Scripting-Reflected-13.png]]

==Dieses Popup Fenster geht nun auf==
*Es wird auf jedem Rechner aufgehen der den generierten Link aufruft
[[Datei:Cross-Site-Scripting-Reflected-14.png]]

=Dieser generierter Link können wir nun an die Opfer versenden=
*http://opfer.secure.local/scripts/xss-reflected.php?name=%3Cscript%3Ealert%28%22Hacked%20by%20Xinux%22%29%3C%2Fscript%3E#

=Hier nun der Code zu diesem Beispiel=
*Bei diesem Eingabeformular wird der eingegebene Text unterhalb des Eingabefeldes wieder ausgegeben.
<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 ) {
    echo 'Hello ' . $_GET[ 'name' ]  ;
}
?>
         </body>
 </html>

Wie können wir so etwas Vermeiden?

  • Wir fügen der If Klausel ein weiteres Argument mit, nämlich das die Eingabe nur ausgeführt werden soll, wenn kein "<script" enthalten ist
<!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 && stripos($_GET['name'], "<script") !== 0 ) {
	echo 'Hello ' . $_GET[ 'name' ]  ;
	}
?>
         </body>
 </html>

               </form>

<?php if( $_GET[ 'name' ] != NULL && stripos($_GET['name'], "<script") !== 0 ) { echo 'Hello ' . $_GET[ 'name' ] ; } ?>

        </body>
</html>

</syntaxhighlight>

               </form>

<?php if( $_GET[ 'name' ] != NULL ) {

   echo 'Hello ' . $_GET[ 'name' ]  ;

} ?>

        </body>
</html>

</syntaxhighlight>

Wie können wir so etwas Vermeiden?

  • Wir fügen der If Klausel ein weiteres Argument mit, nämlich das die Eingabe nur ausgeführt werden soll, wenn kein "<script" enthalten ist
<!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 && stripos($_GET['name'], "<script") !== 0 ) {
	echo 'Hello ' . $_GET[ 'name' ]  ;
	}
?>
         </body>
 </html>