vto*_*ola 7 html javascript security xss
我一直在阅读有关XSS的文章,我用文本和提交输入做了一个简单的表单,但是当我执行<script>alert();</script>它时,没有任何反应,服务器获取该字符串,就是这样.
我该怎么办才能让它变得脆弱?(然后我会学到我不应该做的事情)
干杯.
Bal*_*usC 21
实际上,只需让服务器输出它,以便输入字符串有效地嵌入到HTML源代码中,然后返回给客户端.
PHP示例:
<!doctype html>
<html lang="en">
<head><title>XSS test</title></head>
<body>
<form><input type="text" name="xss"><input type="submit"></form>
<p>Result: <?= $_GET['xss'] ?></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
JSP示例:
<!doctype html>
<html lang="en">
<head><title>XSS test</title></head>
<body>
<form><input type="text" name="xss"><input type="submit"></form>
<p>Result: ${param.xss}</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
或者,您可以重新显示输入元素中的值,这也经常出现:
<input type="text" name="xss" value="<?= $_GET['xss'] ?>">
Run Code Online (Sandbox Code Playgroud)
RESP.
<input type="text" name="xss" value="${param.xss}">
Run Code Online (Sandbox Code Playgroud)
这样"怪异"的攻击字符串"/><script>alert('xss')</script><br class="会起作用,因为服务器会将其渲染为
<input type="text" name="xss" value=""/><script>alert('xss')</script><br class="">
Run Code Online (Sandbox Code Playgroud)
XSS预防解决方案等htmlspecialchars(),并fn:escapeXml()分别对PHP和JSP.这些将在其他替代<,>并"通过<,>并"让终端用户输入不落得字面嵌入在HTML源代码,而是刚刚显示有人进来.