Clickjacking
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F311514708-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F1ImEu59kE9yiIA7SmB7z%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=bbc817c8&sv=1)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Clickjacking이란 무엇인가
Clickjacking 공격에서 사용자는 보이지 않거나 다른 요소로 위장된 웹페이지의 요소를 클릭하도록 속아 넘어갑니다. 이러한 조작은 사용자가 원치 않는 결과를 초래할 수 있으며, 예를 들어 악성 소프트웨어 다운로드, 악성 웹 페이지로의 리디렉션, 자격 증명 또는 민감한 정보 제공, 금전 이체, 또는 온라인 제품 구매 등이 있습니다.
폼 미리 채우기 트릭
때때로 페이지 로드 시 GET 매개변수를 사용하여 폼의 필드 값을 채우는 것이 가능합니다. 공격자는 이 동작을 악용하여 임의의 데이터로 폼을 채우고 사용자가 제출 버튼을 누르도록 clickjacking 페이로드를 전송할 수 있습니다.
드래그 앤 드롭으로 폼 채우기
사용자에게 폼을 채우도록 요구해야 하지만 특정 정보를 직접적으로 작성하라고 요청하고 싶지 않은 경우(예: 알고 있는 이메일 또는 특정 비밀번호), 사용자가 드래그 앤 드롭하여 제어된 데이터를 입력하도록 요청할 수 있습니다. 이 예제와 같이요.
기본 페이로드
다단계 페이로드
Drag&Drop + Click payload
XSS + Clickjacking
사용자가 XSS를 트리거하기 위해 어떤 요소를 클릭해야 하는 XSS 공격을 식별했으며 페이지가 클릭재킹에 취약하다면, 사용자를 속여 버튼/링크를 클릭하도록 할 수 있습니다. 예시: 계정의 일부 개인 정보에서 자기 XSS를 발견했습니다(당신만 설정하고 읽을 수 있는 정보). 이러한 세부 정보를 설정하는 양식이 클릭재킹에 취약하며, GET 매개변수로 양식을 미리 채울 수 있습니다. __공격자는 XSS 페이로드로 양식을 미리 채우는 클릭재킹 공격을 준비하여 사용자를 제출하도록 속일 수 있습니다. 따라서 양식이 제출되면 값이 수정되고, 사용자는 XSS를 실행하게 됩니다.
클릭재킹 완화 전략
클라이언트 측 방어
클라이언트 측에서 실행되는 스크립트는 클릭재킹을 방지하기 위한 작업을 수행할 수 있습니다:
애플리케이션 창이 주 창 또는 상위 창인지 확인합니다.
모든 프레임을 표시합니다.
보이지 않는 프레임에서 클릭을 방지합니다.
잠재적인 클릭재킹 시도를 감지하고 사용자에게 경고합니다.
그러나 이러한 프레임 버스터 스크립트는 우회될 수 있습니다:
브라우저 보안 설정: 일부 브라우저는 보안 설정이나 JavaScript 지원 부족에 따라 이러한 스크립트를 차단할 수 있습니다.
HTML5 iframe
sandbox
속성: 공격자는allow-top-navigation
없이allow-forms
또는allow-scripts
값으로sandbox
속성을 설정하여 프레임 버스터 스크립트를 무력화할 수 있습니다. 이는 iframe이 상위 창인지 확인하는 것을 방지합니다, 예를 들어,
The allow-forms
및 allow-scripts
값은 iframe 내에서의 작업을 활성화하면서 최상위 탐색을 비활성화합니다. 대상 사이트의 의도된 기능을 보장하기 위해 공격 유형에 따라 allow-same-origin
및 allow-modals
와 같은 추가 권한이 필요할 수 있습니다. 브라우저 콘솔 메시지가 허용할 권한을 안내할 수 있습니다.
서버 측 방어
X-Frame-Options
X-Frame-Options
HTTP 응답 헤더는 브라우저에 <frame>
또는 <iframe>
에서 페이지를 렌더링하는 것이 합법적인지에 대한 정보를 제공하여 Clickjacking을 방지하는 데 도움을 줍니다:
X-Frame-Options: deny
- 어떤 도메인도 콘텐츠를 프레임할 수 없습니다.X-Frame-Options: sameorigin
- 현재 사이트만 콘텐츠를 프레임할 수 있습니다.X-Frame-Options: allow-from https://trusted.com
- 지정된 'uri'만 페이지를 프레임할 수 있습니다.제한 사항에 유의하십시오: 브라우저가 이 지시어를 지원하지 않으면 작동하지 않을 수 있습니다. 일부 브라우저는 CSP frame-ancestors 지시어를 선호합니다.
Content Security Policy (CSP) frame-ancestors 지시어
CSP의 frame-ancestors
지시어는 Clickjacking 방지를 위한 권장 방법입니다:
frame-ancestors 'none'
-X-Frame-Options: deny
와 유사합니다.frame-ancestors 'self'
-X-Frame-Options: sameorigin
과 유사합니다.frame-ancestors trusted.com
-X-Frame-Options: allow-from
과 유사합니다.
예를 들어, 다음 CSP는 동일한 도메인에서만 프레임을 허용합니다:
Content-Security-Policy: frame-ancestors 'self';
추가 세부정보 및 복잡한 예제는 frame-ancestors CSP 문서 및 Mozilla의 CSP frame-ancestors 문서에서 확인할 수 있습니다.
child-src
및 frame-src
가 포함된 Content Security Policy (CSP)
child-src
및 frame-src
가 포함된 Content Security Policy (CSP)**Content Security Policy (CSP)**는 브라우저가 콘텐츠를 로드할 수 있는 출처를 지정하여 Clickjacking 및 기타 코드 주입 공격을 방지하는 보안 조치입니다.
frame-src
지시어
frame-src
지시어프레임에 대한 유효한 출처를 정의합니다.
default-src
지시어보다 더 구체적입니다.
이 정책은 동일 출처(자체) 및 https://trusted-website.com에서 프레임을 허용합니다.
child-src
지시어
child-src
지시어웹 워커 및 프레임에 대한 유효한 출처를 설정하기 위해 CSP 레벨 2에서 도입되었습니다.
frame-src 및 worker-src에 대한 대체 역할을 합니다.
이 정책은 동일 출처(자체) 및 https://trusted-website.com에서 프레임과 워커를 허용합니다.
사용 참고 사항:
사용 중단: child-src는 frame-src 및 worker-src로 대체되고 있습니다.
대체 동작: frame-src가 없으면 child-src가 프레임에 대한 대체로 사용됩니다. 둘 다 없으면 default-src가 사용됩니다.
엄격한 출처 정의: 악용을 방지하기 위해 지침에 신뢰할 수 있는 출처만 포함하십시오.
JavaScript 프레임 깨기 스크립트
완전히 안전하지는 않지만, JavaScript 기반의 프레임 깨기 스크립트를 사용하여 웹 페이지가 프레임에 포함되는 것을 방지할 수 있습니다. 예:
Anti-CSRF 토큰 사용
토큰 검증: 웹 애플리케이션에서 anti-CSRF 토큰을 사용하여 상태 변경 요청이 사용자의 의도에 의해 이루어지며 Clickjacked 페이지를 통해 이루어지지 않도록 합니다.
참고 문헌
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F311514708-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F1ImEu59kE9yiIA7SmB7z%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=bbc817c8&sv=1)
Trickest를 사용하여 세계에서 가장 진보된 커뮤니티 도구로 구동되는 워크플로우를 쉽게 구축하고 자동화하세요. 지금 바로 액세스하세요:
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated