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 a98250630..5e0c07d59 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 @@ -6,7 +6,7 @@ iframed 페이지의 내용을 나타내는 방법은 3가지가 있습니다: -- `src`를 통해 URL을 나타냅니다 (URL은 교차 출처 또는 동일 출처일 수 있습니다) +- URL을 나타내는 `src`를 통해 (URL은 교차 출처 또는 동일 출처일 수 있음) - `data:` 프로토콜을 사용하여 내용을 나타내는 `src` - 내용을 나타내는 `srcdoc` @@ -45,7 +45,7 @@ var secret = "child secret" alert(parent.secret) ``` -이전 HTML에 http 서버(예: `python3 -m http.server`)를 통해 접근하면 모든 스크립트가 실행되는 것을 알 수 있습니다(이를 방지하는 CSP가 없기 때문입니다). **부모는 어떤 iframe 안의 `secret` 변수를 접근할 수 없으며** **오직 if2 및 if3 iframe(같은 사이트로 간주됨)만이 원래 창의 secret에 접근할 수 있습니다.**\ +이전 HTML에 HTTP 서버(예: `python3 -m http.server`)를 통해 접근하면 모든 스크립트가 실행되는 것을 알 수 있습니다(이를 방지하는 CSP가 없기 때문입니다). **부모는 어떤 iframe 안의 `secret` 변수를 접근할 수 없으며** **오직 if2 및 if3 iframe(같은 사이트로 간주됨)만이 원래 창의 secret에 접근할 수 있습니다.**\ if4가 `null` 출처로 간주된다는 점에 유의하세요. ### CSP가 있는 Iframes @@ -55,13 +55,13 @@ if4가 `null` 출처로 간주된다는 점에 유의하세요. `script-src`의 `self` 값은 `data:` 프로토콜이나 `srcdoc` 속성을 사용하여 JS 코드를 실행하는 것을 허용하지 않습니다.\ 그러나 CSP의 `none` 값조차도 `src` 속성에 URL(전체 또는 경로만) 을 넣은 iframe의 실행을 허용합니다.\ -따라서 다음과 같이 페이지의 CSP를 우회하는 것이 가능합니다: +따라서 다음과 같이 페이지의 CSP를 우회할 수 있습니다: ```html
+content="script-src 'sha256-iF/bMbiFXal+AAl9tF8N6+KagNWdMlnhLqWkjAocLsk'" /> " if __name__ == "__main__": app.run() ``` -### Other Payloads found on the wild +#### New (2023-2025) CSP 우회 기술 with iframes + +연구 커뮤니티는 제한적인 정책을 무력화하기 위해 iframes를 악용하는 창의적인 방법을 계속 발견하고 있습니다. 아래는 지난 몇 년 동안 발표된 가장 주목할 만한 기술들입니다: + +* **Dangling-markup / named-iframe 데이터 유출 (PortSwigger 2023)** – 애플리케이션이 HTML을 반영하지만 강력한 CSP가 스크립트 실행을 차단할 때, *dangling* `