diff --git a/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md b/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md index ba889b692..8290b92d7 100644 --- a/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md +++ b/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md @@ -4,11 +4,11 @@ ## Iframes in XSS -有三种方式来指示一个 iframe 页面内容: +有3种方式来指示iframe页面的内容: -- 通过 `src` 指定一个 URL(该 URL 可以是跨源或同源) -- 通过 `src` 使用 `data:` 协议指示内容 -- 通过 `srcdoc` 指示内容 +- 通过`src`指示一个URL(该URL可以是跨源或同源) +- 通过`src`使用`data:`协议指示内容 +- 通过`srcdoc`指示内容 **访问父变量和子变量** ```html @@ -45,7 +45,7 @@ var secret = "child secret" alert(parent.secret) ``` -如果您通过 HTTP 服务器(如 `python3 -m http.server`)访问之前的 HTML,您会注意到所有脚本都会被执行(因为没有 CSP 阻止它)。**父级将无法访问任何 iframe 内部的 `secret` 变量**,**只有 if2 和 if3(被视为同源)可以访问原始窗口中的 secret**。\ +如果您通过 HTTP 服务器(如 `python3 -m http.server`)访问之前的 HTML,您会注意到所有脚本都会被执行(因为没有 CSP 阻止它)。**父级将无法访问任何 iframe 内部的 `secret` 变量**,**只有 if2 和 if3(被视为同站)可以访问原始窗口中的 secret**。\ 请注意 if4 被认为具有 `null` 来源。 ### 带 CSP 的 Iframes @@ -61,7 +61,7 @@ alert(parent.secret)
+content="script-src 'sha256-iF/bMbiFXal+AAl9tF8N6+KagNWdMlnhLqWkjAocLsk'" /> " if __name__ == "__main__": app.run() ``` -### 在野外发现的其他有效载荷 +#### 新的(2023-2025)CSP 绕过技术与 iframes + +研究社区继续发现创造性的方法来利用 iframes 以击败限制性政策。以下是过去几年发布的最显著的技术: + +* **悬挂标记 / 命名 iframe 数据外泄 (PortSwigger 2023)** – 当一个应用程序反射 HTML 但强 CSP 阻止脚本执行时,您仍然可以通过注入一个 *悬挂* `