TFC CTF 2025 WEBLESS
TFC CTF 2025 WEBLESS
一个XSS ctf,简单概括下题目要点:
- 未登录下,在登录页面,有GET类型的反射型xss,
- 登录状态,在笔记页面,可以写入内容,但是有csp
"script-src 'none'; style-src 'self'"
解法如下:
在笔记页面,使用iframe加上credentialless,构造
1 |
|
这样打开笔记页面时,iframe就可以执行js代码。
实际利用的payload,使用blob,然后parent.location跳转到这个blob。
1 |
|
URL.createObjectURL() 创建一个 Blob URL 时,这个新的 blob: URL 会继承创建它的那个页面的源(Origin)。
Blob 本身只是内存中的一块数据。我们利用它来做“上下文切换”,把攻击载荷从受限的环境转移到我们想要的环境。在我们的攻击中:iframe是一个未登录的、受限的上下文。XSS 脚本在 iframe 中执行的唯一命令是 parent.location = …。
这个命令强制父窗口(也就是帖子的主页面,它是一个已登录的上下文)去加载我们刚刚创建的 Blob URL。
这样一来,我们最终的偷旗脚本 (finalPayload) 就成功地从 iframe 的“未登录”上下文,被转移到了主窗口的“已登录”上下文中去执行了。
在blob中执行的代码可以使用原主页面的cookie。