0Day漏洞技巧分享 | 同源打击
字数 1442 2025-08-19 12:41:40
0Day漏洞利用技巧:同源策略绕过与攻击技术分析
一、渗透测试初始阶段
1. 目标系统初步侦察
- 目标系统:员工管理平台登录页面
- 初始渗透方法:
- 路径模糊测试(fuzz):对系统路径进行暴力枚举测试
- 返回包长度分析:通过响应包长度判断潜在漏洞
- JavaScript文件审查:检查前端代码寻找敏感信息或漏洞
2. 常见障碍与应对
- 全绿响应:所有路径测试返回正常状态码(200)
- 空响应包:系统返回无有效信息的响应
- 精简前端代码:现代Web应用常采用最小化JS,减少攻击面
二、同源策略(SOP)攻击技术
1. 同源策略基础
- 定义:浏览器安全机制,限制不同源文档/脚本间的交互
- 同源判定标准:协议、域名、端口完全相同
- 限制内容:DOM访问、Cookie/Storage、AJAX请求、Web Workers等
2. 同源策略绕过技术
2.1 跨域资源共享(CORS)滥用
- 宽松的CORS配置:
Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true - 利用方法:
- 构造恶意网站发起跨域请求
- 窃取用户凭证和敏感数据
2.2 JSONP端点滥用
- 识别特征:
- 响应包含回调函数
- Content-Type为application/javascript
- 攻击方法:
- 构造恶意回调函数窃取数据
- 示例:
<script src="https://victim.com/api?callback=malicious"></script> <script> function malicious(data) { // 窃取数据并发送到攻击者服务器 } </script>
2.3 postMessage通信漏洞
- 常见问题:
- 未验证消息来源
- 过于宽松的origin检查("*")
- 利用代码:
// 恶意网站 window.addEventListener('message', (e) => { if(e.origin === 'https://victim.com') { // 窃取敏感数据 } }); // 触发目标窗口发送消息 var win = window.open('https://victim.com'); setTimeout(() => { win.postMessage('getSensitiveData', '*'); }, 1000);
2.4 跨域资源嵌入
- 可嵌入资源类型:
<script>, ``,<video>,<audio>,<object>,<embed>- CSS
@font-face
- 攻击方法:
- 通过资源加载时间差异进行侧信道攻击
- 示例:检测用户是否登录(资源访问权限差异)
三、高级同源攻击技术
1. DNS重绑定攻击
- 原理:利用DNS TTL过期后重新绑定到攻击者控制的IP
- 攻击步骤:
- 用户访问恶意网站,解析域名到合法IP
- DNS记录过期后,重新解析到攻击者IP
- 浏览器因同源策略仍认为在与原域名交互
2. Web缓存欺骗
- 条件:
- 目标站点未正确区分动态/静态内容缓存
- 用户认证信息通过GET请求传递
- 攻击流程:
- 诱使用户访问
https://victim.com/attacker.css - 服务器错误地将用户敏感页面缓存为CSS
- 攻击者获取缓存的"CSS"文件提取敏感信息
- 诱使用户访问
3. 跨源图像窃取
- 利用Canvas API:
var img = new Image(); img.crossOrigin = 'Anonymous'; img.onload = function() { var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); // 分析像素数据获取信息 }; img.src = 'https://victim.com/sensitive-image';
四、防御措施
1. 服务器端防御
- 严格的CORS配置:
- 避免使用
Access-Control-Allow-Origin: * - 精确指定允许的源
- 避免使用
- 敏感操作验证:
- CSRF令牌
- 同站Cookie属性(SameSite)
2. 客户端防御
- 安全的postMessage实现:
window.addEventListener('message', (e) => { if(e.origin !== 'https://trusted.com') return; // 处理消息 }); - 内容安全策略(CSP):
- 限制外部资源加载
- 防止内联脚本执行
3. 其他防护
- 定期安全审计:检查所有跨域交互点
- 敏感操作二次认证:关键操作需重新验证身份
- 安全开发培训:提高团队安全意识
五、渗透测试方法论
- 侦察阶段:全面收集目标系统信息
- 漏洞识别:寻找同源策略相关配置问题
- 利用验证:构造PoC验证漏洞可利用性
- 权限提升:通过获取的有限权限扩大访问范围
- 持久化:建立长期访问通道(如XSS后门)
- 痕迹清理:消除渗透测试活动痕迹
本技术文档详细分析了同源策略绕过与攻击技术,提供了从基础到高级的利用方法,并给出了相应的防御措施。在实际渗透测试中,应结合目标系统特点灵活运用这些技术,同时始终遵守法律法规和道德准则。