-1

我正在测试我用 PHP 制作的用于 HTML 注入的页面,但它没有按我预期的方式工作。

我正在尝试插入

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

我猜堆栈的某些部分是防御性的,例如当您添加javascript:到 URL 并且浏览器摆脱它时,但我不知道在哪里看。我也试过

<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

将表单方法从 更改GETPOST

GET可能导致服务器如何处理URL 中的某些标记出现问题。

OP验证这解决了这个问题。

于 2016-04-14T02:09:23.127 回答