CSP bypass: self + 'unsafe-inline' with Iframes
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
다음과 같은 구성:
코드가 문자열로 전송되는 함수를 사용하는 것을 금지합니다. 예를 들어: eval, setTimeout, setInterval
은 모두 unsafe-eval
설정으로 인해 차단됩니다.
외부 소스의 모든 콘텐츠도 차단되며, 여기에는 이미지, CSS, WebSockets, 특히 JS가 포함됩니다.
현대 브라우저는 디스플레이를 향상시키기 위해 이미지와 텍스트를 HTML로 변환하는 것으로 관찰됩니다 (예: 배경 설정, 중앙 정렬 등). 따라서 favicon.ico
또는 robots.txt
와 같은 이미지나 텍스트 파일이 iframe
을 통해 열리면 HTML로 렌더링됩니다. 특히, 이러한 페이지는 종종 CSP 헤더가 없으며 X-Frame-Options를 포함하지 않을 수 있어, 이들로부터 임의의 JavaScript 실행이 가능해집니다:
유사하게, 텍스트 파일이나 이미지와 같은 오류 응답은 일반적으로 CSP 헤더 없이 제공되며 X-Frame-Options를 생략할 수 있습니다. 오류는 iframe 내에서 로드되도록 유도될 수 있으며, 다음과 같은 작업을 허용합니다:
언급된 시나리오 중 하나를 트리거한 후, iframe 내에서 JavaScript 실행은 다음과 같이 가능하다:
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)