XSS-Attack:是否可以在设置输入值时执行JS?
XSS-Attack: Is it possible to execute JS when input value is set?
我目前针对 XSS 测试了我的应用程序,想知道是否可以利用以下示例。
我是这样做的:我从服务器获得未转义的响应并将其直接设置为输入值。
我知道我应该在服务器上逃逸,但很好奇这是否会被利用。
我已经走到这一步产生语法错误,但无法执行脚本...
document.getElementById('test').value = '"/><script>alert(1);</script>';
<input id="test" type="text"/>
虽然 alert(1);
实际执行了,但您可以更改此示例吗?
感谢您的帮助。我真的很好奇:-)
将任何东西赋给输入的值都不会使其执行。只有分配给 onerror、onmouseover、onfocus 等事件处理程序才能使其执行。
我猜语法错误是因为 </script>
破坏了你的脚本标签,因此你留下了无效的 javascript。与我在这里描述的非常相似:http://erlend.oftedal.no/blog/?blogid=91
我不同意 Erlend 的观点。我可以通过将值分配给输入元素来设法执行脚本。
var group_name = "<script>alert(1);<\/script>"
$(document).ready(function() {
if (group_name) {
$('#name').val(group_name);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-field">
<input id="name" type="text" class="validate" required="" aria-required="true" />
<label for="name" data-error="cannot be blank">Name *</label></div>
</div>
我目前针对 XSS 测试了我的应用程序,想知道是否可以利用以下示例。
我是这样做的:我从服务器获得未转义的响应并将其直接设置为输入值。
我知道我应该在服务器上逃逸,但很好奇这是否会被利用。
我已经走到这一步产生语法错误,但无法执行脚本...
document.getElementById('test').value = '"/><script>alert(1);</script>';
<input id="test" type="text"/>
虽然 alert(1);
实际执行了,但您可以更改此示例吗?
感谢您的帮助。我真的很好奇:-)
将任何东西赋给输入的值都不会使其执行。只有分配给 onerror、onmouseover、onfocus 等事件处理程序才能使其执行。
我猜语法错误是因为 </script>
破坏了你的脚本标签,因此你留下了无效的 javascript。与我在这里描述的非常相似:http://erlend.oftedal.no/blog/?blogid=91
我不同意 Erlend 的观点。我可以通过将值分配给输入元素来设法执行脚本。
var group_name = "<script>alert(1);<\/script>"
$(document).ready(function() {
if (group_name) {
$('#name').val(group_name);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-field">
<input id="name" type="text" class="validate" required="" aria-required="true" />
<label for="name" data-error="cannot be blank">Name *</label></div>
</div>