HTML 注入:无法将 javascript 插入文本区域
HTML injection: cannot insert javascript into textarea
我正在测试我在 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);
编辑:文本区域而不是输入。
编辑:添加了所有代码。
输入标签不能有任何内容,这就是为什么你可以将其设置为自闭合元素<input />
也许你需要另一种方法
将表单方法从 GET
更改为 POST
。
GET
可能会导致服务器处理 URL.
中某些 标记 的方式出现问题
OP 验证这解决了问题。
我正在测试我在 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);
编辑:文本区域而不是输入。
编辑:添加了所有代码。
输入标签不能有任何内容,这就是为什么你可以将其设置为自闭合元素<input />
也许你需要另一种方法
将表单方法从 GET
更改为 POST
。
GET
可能会导致服务器处理 URL.
OP 验证这解决了问题。