48 lines
2.6 KiB
Markdown
48 lines
2.6 KiB
Markdown
# OctoCaptcha — второй слой защиты GitHub
|
||
|
||
Обнаружено 2026-07-29. GitHub использует ДВА слоя DataDome:
|
||
|
||
## Слой 1: DataDome на странице
|
||
|
||
- URL: `/signup` → редирект на `geo.captcha-delivery.com`
|
||
- Решается через SOCKS5 + не-headless Chrome
|
||
- Время: 3-6 секунд
|
||
- Кука: `datadome` для `github.com`
|
||
|
||
## Слой 2: OctoCaptcha в iframe
|
||
|
||
- URL iframe: `https://octocaptcha.com/datadome?origin_page=github_signup_redesign`
|
||
- Появляется после ввода email и нажатия Continue
|
||
- Iframe изначально скрыт (`class="v-hidden"`, `display:none`)
|
||
- JS-ключ: `window.ddjskey = "2CF892E038EE5D8217D27787467ED2"`
|
||
- Опции: `window.ddoptions = { ajaxListenerPath: true }`
|
||
- Скрипт: `https://js.datadome.co/tags.js`
|
||
- Токен: `<input name="octocaptcha-token">` (скрыт, заполняется JS)
|
||
|
||
## Поведение
|
||
|
||
- При открытии OctoCaptcha URL напрямую — DataDome кука ставится мгновенно (браузер уже прогрет с GitHub)
|
||
- В контексте iframe — `tags.js` загружается, но **challenge не завершается**
|
||
- Iframe `visible=false` даже после `style.display='block' !important` (GitHub JS переопределяет)
|
||
- Поле `octocaptcha-token` остаётся пустым 60+ секунд
|
||
- Без токена форма возвращает `200` с редиректом обратно на `/signup`
|
||
|
||
## Что пробовали
|
||
|
||
| Метод | Результат |
|
||
|-------|-----------|
|
||
| `fetch()` POST в обход формы | status=200, url=`/signup` — аккаунт НЕ создан |
|
||
| Мобильный user-agent | DataDome блокирует страницу |
|
||
| `iframe.style` = visible | GitHub JS переопределяет, iframe остаётся `visible=false` |
|
||
| Click/scroll/mousemove в область формы | Без эффекта |
|
||
| Открыть OctoCaptcha URL в отдельной вкладке | Кука ставится, но iframe на GitHub не видит |
|
||
|
||
## Рабочее решение
|
||
|
||
**Прогретый Chrome-профиль** (с куками, историей посещений GitHub) — обходит ОБА слоя:
|
||
|
||
1. DataDome на `/signup` не показывается (браузер уже «свой»)
|
||
2. OctoCaptcha iframe не загружается или сразу решается
|
||
|
||
Без профиля регистрация **невозможна** по состоянию на 2026-07-29.
|