Translated ['src/pentesting-web/clickjacking.md'] to ko

This commit is contained in:
Translator 2025-01-06 10:28:29 +00:00
parent bd3270b932
commit 75778cc90a

View File

@ -8,14 +8,14 @@
### Prepopulate forms trick
때때로 **페이지 로딩 시 GET 매개변수를 사용하여 양식의 필드 값을 채우는 것이 가능합니다**. 공격자는 이 동작을 악용하여 임의의 데이터로 양식을 채우고 클릭재킹 페이로드를 전송하여 사용자가 제출 버튼을 누르도록 할 수 있습니다.
때때로 **페이지를 로드할 때 GET 매개변수를 사용하여 양식의 필드 값을 채우는 것이 가능합니다**. 공격자는 이 동작을 악용하여 임의의 데이터로 양식을 채우고 클릭재킹 페이로드를 전송하여 사용자가 제출 버튼을 누르도록 할 수 있습니다.
### Populate form with Drag\&Drop
사용자에게 **양식을 작성하도록**청해야 하지만 특정 정보를 직접적으로 작성하라고 요청하고 싶지 않은 경우(예: 알고 있는 이메일 또는 특정 비밀번호), 사용자가 **Drag\&Drop**하여 제어된 데이터를 입력하도록 요청할 수 있습니다. [**이 예제**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)와 같이 말입니다.
사용자에게 **양식을 작성하도록**구해야 하지만 특정 정보를 직접적으로 요청하고 싶지 않은 경우(예: 알고 있는 이메일 또는 특정 비밀번호), 사용자가 **Drag\&Drop**하여 제어된 데이터를 입력하도록 요청할 수 있습니다. [**이 예제**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)와 같이.
### Basic Payload
```markup
```css
<style>
iframe {
position:relative;
@ -35,7 +35,7 @@ z-index: 1;
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>
```
### 다단계 페이로드
```markup
```css
<style>
iframe {
position:relative;
@ -58,8 +58,8 @@ left:210px;
<div class="secondClick">Click me next</div>
<iframe src="https://vulnerable.net/account"></iframe>
```
### Drag\&Drop + Click 페이로드
```markup
### 드래그 앤 드롭 + 클릭 페이로드
```css
<html>
<head>
<style>
@ -89,26 +89,35 @@ background: #F00;
```
### XSS + Clickjacking
사용자가 XSS를 **트리거**하기 위해 어떤 요소를 클릭해야 하는 **XSS 공격**을 식별했으며 페이지가 **클릭재킹**에 취약하다면, 사용자를 속여 버튼/링크를 클릭하도록 유도할 수 있습니다.\
사용자가 XSS를 **트리거**하기 위해 어떤 요소를 클릭해야 하는 **XSS 공격**을 식별하고 페이지가 **클릭재킹**에 취약하다면, 사용자를 속여 버튼/링크를 클릭하도록 할 수 있습니다.\
예시:\
계정의 일부 개인 정보에서 **자기 XSS**를 발견했습니다(정보는 **오직 당신만 설정하고 읽을 수 있는** 정보입니다). 이러한 세부 정보를 설정하는 **양식**이 **클릭재킹**에 **취약**하며 GET 매개변수로 **양식**을 **미리 채울** 수 있습니다.\
공격자는 해당 페이지에 **XSS 페이로드**로 **양식**을 **미리 채우는** **클릭재킹** 공격을 준비하고 **사용자**를 **제출**하도록 **속일** 수 있습니다. 따라서 **양식이 제출되면** 값이 수정되고, **사용자는 XSS를 실행하게 됩니다**.
공격자는 해당 페이지에 대한 **클릭재킹** 공격을 준비하여 **XSS 페이로드**로 **양식**을 **미리 채우고** **사용자**를 **제출**하도록 속일 수 있습니다. 따라서 **양식이 제출되고** 값이 수정되면, **사용자는 XSS를 실행하게 됩니다**.
## 클릭재킹 완화 전략
### DoubleClickjacking
### 클라이언트 측 방어
먼저 [이 게시물에서 설명됨](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html), 이 기술은 피해자에게 특정 위치에 배치된 사용자 정의 페이지의 버튼을 두 번 클릭하도록 요청하며, 마우스 다운과 클릭 이벤트 간의 시간 차이를 이용해 두 번 클릭하는 동안 피해자 페이지를 로드하여 **피해자가 실제로 피해자 페이지의 정당한 버튼을 클릭하게 만듭니다**.
예시는 이 비디오에서 볼 수 있습니다: [https://www.youtube.com/watch?v=4rGvRRMrD18](https://www.youtube.com/watch?v=4rGvRRMrD18)
> [!WARNING]
> 이 기술은 사용자가 클릭재킹에 대한 모든 보호를 우회하여 피해자 페이지의 1곳을 클릭하도록 속일 수 있습니다. 따라서 공격자는 **OAuth 권한 수락과 같이 단 1회의 클릭으로 수행할 수 있는 민감한 작업을 찾아야 합니다**.
## Strategies to Mitigate Clickjacking
### Client-Side Defenses
클라이언트 측에서 실행되는 스크립트는 클릭재킹을 방지하기 위한 작업을 수행할 수 있습니다:
- 애플리케이션 창이 주 창 또는 상위 창인지 확인합니다.
- 모든 프레임을 표시합니다.
- 보이지 않는 프레임에서 클릭을 방지합니다.
- 잠재적인 클릭재킹 시도를 감지하고 사용자에게 경고합니다.
- 보이지 않는 프레임에서 클릭을 방지합니다.
- 잠재적인 클릭재킹 시도에 대해 사용자에게 감지하고 경고합니다.
그러나 이러한 프레임 파괴 스크립트는 우회될 수 있습니다:
- **브라우저 보안 설정:** 일부 브라우저는 보안 설정이나 JavaScript 지원 부족에 따라 이러한 스크립트를 차단할 수 있습니다.
- **HTML5 iframe `sandbox` 속성:** 공격자는 `allow-top-navigation` 없이 `allow-forms` 또는 `allow-scripts` 값으로 `sandbox` 속성을 설정하여 프레임 파괴 스크립트를 무력화할 수 있습니다. 이는 iframe이 상위 창인지 확인하는 것을 방지합니다, 예를 들어,
- **브라우저 보안 설정:** 일부 브라우저는 보안 설정이나 JavaScript 지원 부족에 따라 이러한 스크립트를 차단할 수 있습니다.
- **HTML5 iframe `sandbox` 속성:** 공격자는 `allow-top-navigation` 없이 `allow-forms` 또는 `allow-scripts` 값으로 `sandbox` 속성을 설정하여 프레임 파괴 스크립트를 무력화할 수 있습니다. 이는 iframe이 자신이 상위 창인지 확인하는 것을 방지합니다, 예를 들어,
```html
<iframe
id="victim_website"
@ -121,12 +130,12 @@ sandbox="allow-forms allow-scripts"></iframe>
#### X-Frame-Options
**`X-Frame-Options` HTTP 응답 헤더**는 브라우저에 `<frame>` 또는 `<iframe>`에서 페이지를 렌더링하는 것의 정당성에 대해 알리며, Clickjacking을 방지하는 데 도움을 줍니다:
**`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 지시어를 선호합니다.
- 제한 사항에 유의하세요: 브라우저가 이 지시어를 지원하지 않으면 작동하지 않을 수 있습니다. 일부 브라우저는 CSP frame-ancestors 지시어를 선호합니다.
#### Content Security Policy (CSP) frame-ancestors 지시어
@ -180,9 +189,9 @@ top.location = self.location
```
#### Anti-CSRF 토큰 사용
- **토큰 검증:** 웹 애플리케이션에서 anti-CSRF 토큰을 사용하여 상태 변경 요청이 사용자의 의도에 의해 이루어지 Clickjacked 페이지를 통해 이루어지지 않도록 합니다.
- **토큰 검증:** 웹 애플리케이션에서 anti-CSRF 토큰을 사용하여 상태 변경 요청이 사용자의 의도에 의해 이루어지 Clickjacked 페이지를 통해 이루어지지 않도록 합니다.
## 참
## 참고문헌
- [**https://portswigger.net/web-security/clickjacking**](https://portswigger.net/web-security/clickjacking)
- [**https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html**](https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html)