等级7 - CSP绕过XSS

绕过内容安全策略实现XSS攻击

挑战描述

内容安全策略(CSP)是一种重要的XSS防护机制,通过限制资源加载来源来防止恶意脚本执行。但是,不当配置的CSP可能存在绕过方法。这个挑战模拟了一个配置了CSP但仍存在XSS漏洞的场景。

目标:在CSP保护下,找到绕过方法执行JavaScript代码并弹出包含"XSS"的警告框。

CSP策略分析

// 当前CSP策略: // Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; object-src 'none'; // CSP策略解析: // default-src 'self' - 默认只允许同源资源 // script-src 'self' 'unsafe-inline' - 允许同源脚本和内联脚本 // object-src 'none' - 禁止所有object、embed、applet // 漏洞分析: // 1. 'unsafe-inline'允许内联JavaScript执行 // 2. 可以使用事件处理器属性 // 3. 可以利用现有的JavaScript上下文 // 4. 不需要加载外部脚本资源 // 绕过方法: // 1. 内联事件处理器:onclick、onload、onerror等 // 2. 利用HTML5新标签:details、summary等 // 3. 使用现有的全局函数:eval、setTimeout等 // 4. 数据URI:data:text/html,<script>alert('XSS')</script>

数据展示测试区域

数据显示区域:

欢迎访问我们的网站!

模板渲染测试区域

模板渲染结果:

用户信息

姓名:张三

邮箱:[email protected]

CSP绕过技巧:
  • 利用'unsafe-inline':内联事件处理器
  • HTML5新特性:details、summary、dialog等
  • 利用现有上下文:全局函数、变量
  • 数据URI:在允许的情况下使用data:协议
  • JSONP:利用script-src 'self'加载同源JSONP