-1

HTML インジェクション用に PHP で作成したページをテストしていますが、期待どおりに動作しません。

挿入しようとしています

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

テキストエリア内。サーバー側では、今のところ var_dump を使用して $_GET を表示したいだけですが、それにも到達しません。ボタンをクリックすると、ホームページに戻り#3377832596384266514、URL に追加されます。PHP でエラーが発生しないため、サーバーの問題 (Apache 2.4) である可能性があります。

URLに追加したときにブラウザがそれを取り除くときのように、スタックの一部が防御的になっていると推測していますがjavascript:、どこを見ればよいかわかりません。私も試してみました

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

およびその他のバリエーションですが、<およびその他の文字が削除されます。

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);

編集:入力の代わりにテキストエリア。

編集:すべてのコードを追加しました。

4

2 に答える 2

0

入力タグにはコンテンツを含めることができないため、自己終了要素として設定できます<input />

多分あなたは別のアプローチが必要です

于 2016-04-14T01:02:11.763 に答える
0

フォーム メソッドを からGETに変更しPOSTます。

GETサーバーがURL 内の特定のマークアップを処理する方法で問題が発生している可能性があります。

OPはこれが問題を解決したことを確認しました。

于 2016-04-14T02:09:23.127 に答える