CSP bypass: self + 'unsafe-inline' with Iframes
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
一个这样的配置:
禁止使用任何作为字符串传输的代码执行函数。例如:eval, setTimeout, setInterval
都会因为设置 unsafe-eval
而被阻止。
来自外部来源的任何内容也会被阻止,包括图像、CSS、WebSockets,尤其是 JS。
观察到现代浏览器将图像和文本转换为 HTML 以增强其显示效果(例如,设置背景、居中等)。因此,如果通过 iframe
打开图像或文本文件,例如 favicon.ico
或 robots.txt
,它会被呈现为 HTML。值得注意的是,这些页面通常缺少 CSP 头,并且可能不包括 X-Frame-Options,从而允许从中执行任意 JavaScript:
类似地,错误响应,如文本文件或图像,通常没有CSP头,并且可能省略X-Frame-Options。可以诱导错误在iframe中加载,从而允许以下操作:
在触发上述任何场景后,可以通过以下方式在iframe中实现JavaScript执行:
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)