码迷,mamicode.com
首页 > 编程语言 > 详细

XSS传染基础——JavaScript中的opener、iframe

时间:2015-04-12 20:56:16      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

最近研究XSS,根据etherDream大神的博客 延长XSS生命周期 写了一个子页面父页面相互修改的demo。

一、 子页面、父页面相互修改——window.opener、window.open

在父页面修改子页面,是用到了window.open函数:

<script>
var target_page=window.open("parent-call.html", "");
target_page.document.write(我被亲爹重写了!);
</script>

在子页面修改父页面的话,用到的是window.opener函数:

<script>
    if(window.opener){
        window.opener.document.write(啦啦啦,我是坏蛋儿子,我把亲爹重写了)
    }
    else{
        alert(我亲爹是谁?不知道!)
    }
</script>

在调用window.opener.document修改父页面元素的时候,先检查了一下window.opener是否存在。这是因为子页面不一定存在opener,比如说父页面直接跳转到子页面(此时父页面已经不存在了)

二、 iframe子页面和父页面的相互修改——window.frames、window.parent

iframe标签在页面中是个比较神奇的存在,是存在于当前页面中的另一个页面,是两个完全不同的window。

iframe修改父页面,调用了window.parent:

<script type="text/javascript">
    window.parent.document.write(我是坏孩子,我修改了亲爹)
</script>

父页面修改iframe子页面,调用了window.frames[]:

<script>
window.frames[change_by_father].contentWindow.document.write(来自父页面的修改)   //change_by_father为frame的ID
</script>

修改子页面的时候,需要注意的一点是iframe的document并不直接属于当前frame,而是属于contentWindow。

三、 XSS传染

我所理解的XSS传染是利用如上的小技巧,把恶意代码注入到用户打开的其他页面中。以小漏洞控制大场面,在钓鱼,XSS扩大攻击中会有比较突出的表现。

本来没准备专门去写demo的,昨天晚上看的很high,不知不觉就把demo写好了- -算是以一种比较逗的语气解释了相关的知识,欢迎交流。

 

demo地址:

http://pan.baidu.com/s/1sjoeTbR

XSS传染基础——JavaScript中的opener、iframe

标签:

原文地址:http://www.cnblogs.com/kuoaidebb/p/4420202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!