繁体   English   中英

尝试创建基于DOM的XSS示例

[英]Trying to create a DOM based XSS example

我试图了解有关XSS预防的更多信息,并且这样做了,写了一些我认为可以允许XSS的非常简单的JavaScript

<label id="searchLbl" for="search">Search</label>
<input id="search" autocomplete="off"/>

<div id="results"></div>

<script>
   document.getElementById('search').addEventListener('keypress', function(e) {
   var code = e.keyCode || e.which;
       if (code === 13) { 
           document.getElementById('results').innerHTML = document.getElementById('search').value;
            }
        });
</script>

对于将我输入的内容输入到结果div并将其显示在结果div中,此代码可以很好地工作。 但是,如果我尝试输入:

<script>alert("Failed");</script>

Chrome(v31)和Firefox(v25.0.1)均拒绝将div的innerHTML设置为该值。 似乎其中包含<字符的任何字符串都会在该字符的第一个实例处被截断。

如我所料,使用jQuery代替JavaScript失败。

$('#results').html($('#search').val());

我想念什么?

<script>标记中的JavaScript代码注入DOM不会导致代码被执行。 内联<script>标记仅在页面加载时执行。

<字符不会被截断。 您可以看到,如果尝试注入HTML,例如<b>test</b>

如果要使用<script>标记执行XSS,则必须执行类似的操作,例如使用查询字符串参数中的HTML向页面发出请求,然后使用诸如PHP的服务器端语言将其回显到页面上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM