# testing-oauth2-implementation-flaws

Скилл для проверки OAuth 2.0 и OpenID Connect на перехват кода, подмену redirect URI, CSRF, утечку токенов и обход PKCE.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 350 установок · ★ 35034
- Автор: mahipal
- Лицензия: Apache-2.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/HEAD/skills/testing-oauth2-implementation-flaws/SKILL.md
- Обновлён: 2026-08-31
- HTML: https://affpapa.org/nevibecode/skills/testing-oauth2-implementation-flaws

## Что делает

Скилл ведёт агента по шагам аудита OAuth-потоков. Сначала он ищет эндпоинты через `/.well-known/openid-configuration`, а если конфигурации нет — перебирает типовые пути вроде `/authorize` и `/oauth2/authorize`. Дальше идут проверки redirect URI: список payload'ов включает подмену домена, путаницу с authority через `@`, обход через точку и фрагмент, понижение до HTTP и смену порта.

Отдельные шаги — тесты параметра `state` и обмена кода на токен. Скрипты на Python показывают, как отправить запрос авторизации без `state`, переиспользовать одно значение и проверить, валидирует ли клиент возвращённый `state`. Для перехвата редиректов и потоков токенов нужен Burp Suite Professional с расширением EsPReSSO.

Заранее понадобится письменное разрешение с указанием провайдера и клиентов в скоупе, тестовый OAuth-клиент, зарегистрированный на сервере авторизации, Python 3.10+ с библиотеками `requests` и `oauthlib`. Без письменной авторизации скилл применять нельзя: тесты могут привести к краже токена или несанкционированному доступу. Это повод согласовать границы работ до запуска.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill testing-oauth2-implementation-flaws -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/testing-oauth2-implementation-flaws/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/testing-oauth2-implementation-flaws/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill testing-oauth2-implementation-flaws -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/testing-oauth2-implementation-flaws/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill testing-oauth2-implementation-flaws -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/testing-oauth2-implementation-flaws/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install mukul975/Anthropic-Cybersecurity-Skills testing-oauth2-implementation-flaws
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/testing-oauth2-implementation-flaws/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill testing-oauth2-implementation-flaws -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/mukul975/Anthropic-Cybersecurity-Skills --path skills/testing-oauth2-implementation-flaws
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/testing-oauth2-implementation-flaws/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill testing-oauth2-implementation-flaws -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/HEAD/skills/testing-oauth2-implementation-flaws/SKILL.md

## Когда брать
- найти слабую валидацию redirect URI в потоке authorization code
- проверить, требует ли сервер параметр `state` и отклоняет ли его переиспользование
- оценить, как клиент хранит и передаёт токены
- выявить эскалацию scope, когда клиент просит больше прав, чем разрешено
- проверить валидацию ID token и использование nonce в OpenID Connect

## Примеры запросов агенту
- проверь redirect URI нашего OAuth-провайдера на обход валидации
- прогони тесты параметра state для клиента test-client-id
- посмотри, можно ли обойти PKCE в нашем потоке авторизации

## Похожие
- [authbypass-authentication-flaws](https://affpapa.org/nevibecode/skills/authbypass-authentication-flaws.md) — скилл · 3800 установок
- [oauth2-provider-design](https://affpapa.org/nevibecode/skills/oauth2-provider-design.md) — скилл · 7800 установок
- [auth-implementation-patterns](https://affpapa.org/nevibecode/skills/auth-implementation-patterns.md) — скилл · 19388 установок
- [oauth-oidc-misconfiguration](https://affpapa.org/nevibecode/skills/oauth-oidc-misconfiguration.md) — скилл · 3700 установок
- [authentication](https://affpapa.org/nevibecode/skills/codewithmukesh-authentication.md) — скилл · 2800 установок
- [omni-auth](https://affpapa.org/nevibecode/skills/omni-auth.md) — скилл · 1100 установок

Из того же набора: [mukul975/anthropic-cybersecurity-skills](https://affpapa.org/nevibecode/by/mukul975/anthropic-cybersecurity-skills.md) — 89 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
