XSS传染基础——JavaScript中的opener、iframe
2024-09-13 03:26:22
最近研究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写好了- -算是以一种比较逗的语气解释了相关的知识,欢迎交流。
另,补充(如何用JS获取整个HTML页面的内容):
<script>
function GetByTagName(code){
return document.getElementsByTagName(code)[0].innerHTML
}
// 令人震惊的是innerHTML竟然是属性而不是方法
</script>
demo地址:
http://pan.baidu.com/s/1sjoeTbR
最新文章
- window下使用Redis Cluster部署Redis集群
- 查看sql语句执行的消耗
- [POJ2096] Collecting Bugs (概率dp)
- 获取客户端IP
- .net发邮件【转】
- The connection to adb is down, and a severe error has occured.(DDMS中没有真机)
- LUA __call
- 阿里 drds 分布式数据库分节点查询
- hiho(1081),SPFA最短路,(非主流写法)
- (转)CentOS 6.5下Redis安装详细步骤
- C#中调用WIN32的API
- 加密Web.Config配置文件
- MYSQL一次性能优化实战经历[转]
- Oracle用户权限分配
- QuickTime视频解析问题
- CCF-201512-1-数位之和
- Python进阶之迭代器和生成器
- Servlet(三):生命周期、常用方法、常见错误
- SpringCloud注解和配置以及pom依赖说明
- python笔记11-元组
热门文章
- iOS开发之静态库.a的制作教程
- Arcengine10下载地址
- DHCP服务自动分配IP地址原理
- [Doc ID 1590988.1]如何清理E-Business Suite的缓存(Apache/iAS, Cabo, Modplsql, Browser, Jinitiator, Java, Portal, WebADI)?
- IE6 BUG margin 两倍
- 在 Ubuntu 16.04 中安装谷歌 Chrome 浏览器
- 使用WCF和WEBService出现配置的问题
- hhgis驱动
- 安装.NET Framework组件时,电脑意外重启后再次安装失败
- Spread 之自定义对角线cellType源码: DiagonalCellType