Mil*_*ilk 8 javascript xss window.location
这个问题与window.location = window.location作为刷新页面方法的代码有关,与重定向/其他变量无关。
我的理解如下:
window.location = window.location 导致页面刷新,因为浏览器将导航到用户已经所在的位置。
通过 DOM 操作对该变量的任何更改都将导致页面重新加载/加载攻击者页面,因此这些行将无法以更改的值执行,因此不是跨站点脚本攻击的候选者。
这样对吗?
编辑:我真正要问的是是否有一种方法可以在window.location不导致页面重新加载的情况下进行更改,以便在进行window.location = window.location调用时,浏览器将被发送到另一个位置。
因此,如果我正确理解您的问题,那么这些答案都不正确。可以利用window.location来执行 xss。看来您遇到的障碍是,在该window.location行执行后,页面将刷新并跳过您的有效负载的执行。我假设您能够以某种方式将内容引入到 window.location 右侧的字符串中,并且输入没有被正确编码为 JavaScript 字符串。
例如,如果http://vulnerablewebsite/page?param=derp';alert('xss');var+a+%3d+'生成如下代码:
<script>
window.location='derp';alert('xss');var a = '';
</script>
Run Code Online (Sandbox Code Playgroud)
您可以利用字符串连接来推迟对 window.location 的分配,直到执行有效负载之后。所以像这样:
http://vulnerablewebsite/page?param=derp'+%2B+alert('xss')+%2b+'
将生成以下执行您的有效负载的代码。
<script>
window.location='derp' + alert('xss') + '';
</script>
Run Code Online (Sandbox Code Playgroud)
不过,这确实应该在安全 StackExchange 中。
| 归档时间: |
|
| 查看次数: |
14050 次 |
| 最近记录: |