2.6 KiB
2.6 KiB
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) — обходит ОБА слоя:
- DataDome на
/signupне показывается (браузер уже «свой») - OctoCaptcha iframe не загружается или сразу решается
Без профиля регистрация невозможна по состоянию на 2026-07-29.