2016-04-14 5 views
-2

Ich teste eine Seite, die ich in PHP für HTML-Injektionen gemacht habe, aber es funktioniert nicht so, wie ich es erwartet hatte.HTML-Injektion: kann Javascript nicht in Textarea einfügen

Ich versuche

<div onmouseover="alert(1)" style="position:fixed;left:0;top:0;width:9999px;height:9999px;"> 
</div> 

in einem Textbereich einzufügen. Serverseitig möchte ich $ _GET nur mit einem var_dump anzeigen, aber es kommt nicht einmal dazu: Wenn ich auf die Schaltfläche klicke, bringt es mich zurück zur Homepage und #3377832596384266514 wird zur URL hinzugefügt. Ich bekomme keinen Fehler in PHP, vielleicht ist es ein Serverproblem (Apache 2.4).

Ich vermute ein Teil des Stacks ist defensiv, wie wenn Sie javascript: zu einer URL hinzufügen und der Browser wird es loswerden, aber ich weiß nicht, wo ich suchen soll. Ich habe auch versucht,

<script>alert(foo);</script> 

und andere Variationen, aber dann die < und einige andere Zeichen entfernt werden.

test.php 
<!doctype html> 
<head> 
    <meta charset="utf-8"> 
    <title>Test</title> 
</head> 
<body> 
    <form method="get" action="select.php"> 
     <p> 
      <label for="select">Words 
       <textarea id="select" 
         name="select" 
         cols="50" 
         rows="1" 
         maxlength="100" 
         required 
         autofocus></textarea> 
      </label> 
     </p> 
     <p> 
      <button>Send</button> 
     </p> 
    </form> 
</body> 
</html> 


select.php 
<?php 
    var_dump($_GET); 

Bearbeiten: Textarea anstelle von Eingabe.

Edit: den gesamten Code hinzugefügt.

+0

Manchmal tut Ihr Server das. Es wird also abgefangen und entfernt, noch bevor Ihr PHP es sieht, geschweige denn den Browser. – durbnpoisn

+0

Sie müssen Ihren PHP-Code zeigen, wenn wir eine Chance haben, herauszufinden, was falsch ist. – Barmar

+0

@durbnpoisn Ja das würde es erklären, aber ist es Standard? Wird es durch eine Konfigurationsdatei verursacht? – kevinlelo

Antwort

0

Ändern Sie die Formularmethode GET-POST.

GET möglicherweise verursacht ein Problem mit, wie der Server behandelt bestimmte Markup in der URL.

OP verifiziert Dies behebt das Problem.

0

Eingangs Tags können keine Inhalte haben, das ist, warum Sie es als ein selbstschließendes Element festlegen <input />

vielleicht brauchen Sie einen anderen Ansatz

+0

Mein Fehler, ich benutze ein Textfeld! – kevinlelo

+0

'textarea' kann nur reinen Text enthalten. – v7d8dpo4

Verwandte Themen