Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
rebrowser-patches — Коллекция патчей для puppeteer и playwright, позволяющая избежать обнаружения автоматизации и утечек. Помогает обходить CAPTCHA-страницы Cloudflare и DataDome. Патчи легко применять и отменять; их можно включать и отключать по требованию. | Kitploit
Инструменты/GitHubGitHub/rebrowser/rebrowser-patches
КраулерАнти-БотПодмена Цифрового ОтпечаткаОбход CAPTCHAТоп в Обход CAPTCHA №20Топ в Подмена Цифрового Отпечатка №9

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHub
rebrowser/rebrowser-patches

rebrowser-patches

Коллекция патчей для puppeteer и playwright, позволяющая избежать обнаружения автоматизации и утечек. Помогает обходить CAPTCHA-страницы Cloudflare и DataDome. Патчи легко применять и отменять; их можно включать и отключать по требованию.

РепозиторийСайт
1.4k831201 год назадПроверено Kitploit

🪄 Патчи для необнаруживаемой автоматизации браузера

Этот репозиторий содержит патчи для улучшения популярных библиотек веб-автоматизации. В частности, он нацелен на пакеты puppeteer и playwright.

Некоторые аспекты библиотек автоматизации и поведения браузера невозможно настроить через параметры или флаги командной строки. Поэтому мы решаем эти проблемы, пропатчив исходный код библиотеки. Хотя такой подход хрупок и может сломаться по мере изменения исходного кода библиотек со временем, цель — поддерживать этот репозиторий с помощью сообщества, чтобы патчи оставались актуальными.

Действительно ли мне нужны патчи?

Из коробки Puppeteer и Playwright содержат несколько значительных утечек, которые легко обнаружить. Неважно, насколько хороши ваши прокси, отпечатки и поведенческие скрипты: без патчей вы — просто большой красный флаг для любого крупного сайта.

🕵️ Вы можете легко проверить свою конфигурацию автоматизации на современные методы обнаружения с помощью rebrowser-bot-detector (исходники и подробности)

До патчей 👎После патчей 👍
beforeafter

Есть ли простая замена без изменения кода?

Если вы не хотите возиться с патчами и всевозможными ошибками, для вас есть готовое решение. Эти пакеты представляют собой просто rebrowser-patches, применённые поверх оригинального кода, — и ничего больше.

Puppeteer: rebrowser-puppeteer (исходники) и rebrowser-puppeteer-core (исходники)

Playwright (Node.js): rebrowser-playwright (исходники) и rebrowser-playwright-core (исходники)

Playwright (Python): rebrowser-playwright (исходники)

Самый простой способ начать использование — поправить ваш package.json, чтобы использовались новые пакеты, но со старым именем в качестве алиаса. Так вам не нужно менять ни строчки исходного кода вашей автоматизации. Вот как это сделать:

  1. Откройте package.json и замените "puppeteer": "^23.3.1" и "puppeteer-core": "^23.3.1" на "puppeteer": "npm:rebrowser-puppeteer@^23.3.1" и "puppeteer-core": "npm:rebrowser-puppeteer-core@^23.3.1". Примечание: 23.3.1 — это лишь пример, проверьте актуальную версию на npm.
  2. Выполните npm install (или yarn install)

Другой способ — использовать новые пакеты вместо оригинальных. Вот шаги, которым нужно следовать:

  1. Откройте package.json и замените пакеты puppeteer и puppeteer-core на rebrowser-puppeteer и rebrowser-puppeteer-core. Не меняйте версии пакетов — просто замените названия.
  2. Выполните npm install (или yarn install)
  3. Найдите и замените в своих скриптах все упоминания puppeteer и puppeteer-core на rebrowser-puppeteer и rebrowser-puppeteer-core

🚀 Вот и всё! Просто зайдите на страницу rebrowser-bot-detector и протестируйте свой пропатченный браузер.

Наша цель — поддерживать эти готовые пакеты-замены с актуальными версиями, но в основном мы сосредоточены на свежих версиях, так что если вы всё ещё используете puppeteer 13.3.7 из начала 90-х, возможно, пора обновиться. С большой вероятностью ничего не сломается, так как API довольно стабилен со временем.

Доступные патчи

Исправление утечки Runtime.Enable

Популярные библиотеки автоматизации полагаются на CDP-команду Runtime.Enable, которая позволяет получать события из домена Runtime.. Это критически важно для управления контекстами выполнения, используемыми для выполнения JavaScript на страницах, — ключевая функция любого процесса автоматизации.

Однако существует техника, которая обнаруживает использование этой команды и показывает, что браузер управляется ПО для автоматизации, таким как Puppeteer или Playwright. Эта техника используется всем крупным антибот-ПО, таким как Cloudflare, DataDome и другие.

Мы подготовили полную статью о нашем исследовании этой утечки, которую можно прочитать в нашем блоге.

Более подробно об этой технике читайте в блоге DataDome: Как новый Headless Chrome и сигнал CDP влияют на обнаружение ботов. Если кратко, это несколько строк JavaScript на странице, которые вызываются автоматически, если была использована команда Runtime.Enable.

Наше исправление отключает автоматическую команду Runtime.Enable на каждом фрейме. Вместо этого мы вручную создаём контексты с неизвестными ID при создании фрейма. Затем, когда нужно выполнить код, есть несколько способов получить ID контекста.

1. Создайте новый binding в основном мире, вызовите его и сохраните его ID контекста.

🟢 Плюсы: наилучший подход — сохраняет доступ к основному миру и работает с веб-воркерами и iframe. Вам не нужно менять ни строчки существующего кода.

🔴 Минусы: на данный момент не обнаружены.

2. Создайте новый изолированный контекст через Page.createIsolatedWorld и сохраните его ID.

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

🔴 Минусы: вы не сможете получить доступ к переменным и коду основного контекста. Хотя это необходимо для некоторых сценариев использования, изолированный контекст в целом отлично работает в большинстве случаев. Кроме того, веб-воркеры не позволяют создавать новые миры, поэтому вы не сможете выполнять свой код внутри воркера. Это нишевый сценарий использования, но в некоторых ситуациях может иметь значение. Для этой проблемы есть обходное решение — прочитайте Как получить доступ к объектам основного контекста из изолированного контекста в Puppeteer и Playwright.

3. Вызовите Runtime.Enable, а затем сразу же Runtime.Disable.

Это вызывает события Runtime.executionContextCreated, что позволяет нам перехватить правильный ID контекста.

🟢 Плюсы: у вас будет полный доступ к основному контексту.

🔴 Минусы: есть небольшая вероятность, что за этот короткий промежуток времени страница вызовет код, который приведёт к утечке. Риск низок, поскольку код обнаружения обычно вызывается во время определённых действий, таких как CAPTCHA-страницы или формы входа/регистрации, как правило, сразу после загрузки страницы. Ваша бизнес-логика обычно вызывается чуть позже.

Скачать инструмент