Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
rebrowser-patches — Collection de correctifs pour puppeteer et playwright afin d'éviter la détection d'automatisation et les fuites. Aide à éviter les pages CAPTCHA de Cloudflare et DataDome. Facile à patcher/dépatcher, peut être activé/désactivé à la demande. | Kitploit
Outils/GitHubGitHub/rebrowser/rebrowser-patches
CrawlerAnti-BotUsurpation d'Empreinte NumériqueContournement de CAPTCHATop en Contournement de CAPTCHA n°20Top en Usurpation d'Empreinte Numérique n°9

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
rebrowser/rebrowser-patches

rebrowser-patches

Collection de correctifs pour puppeteer et playwright afin d'éviter la détection d'automatisation et les fuites. Aide à éviter les pages CAPTCHA de Cloudflare et DataDome. Facile à patcher/dépatcher, peut être activé/désactivé à la demande.

Voir le dépôtSite web
1.4k83121il y a 1 anVérifié par Kitploit

🪄 Correctifs pour une automatisation de navigateur indétectable

Ce dépôt contient des correctifs pour améliorer les bibliothèques d'automatisation web populaires. Plus précisément, il cible les packages puppeteer et playwright.

Certains aspects des bibliothèques d'automatisation ou du comportement du navigateur ne peuvent pas être ajustés via les paramètres ou les options de ligne de commande. C'est pourquoi nous corrigeons ces problèmes en patchant le code source de la bibliothèque. Bien que cette approche soit fragile et puisse se casser au fil du temps lorsque le code source des bibliothèques évolue, l'objectif est de maintenir ce dépôt avec l'aide de la communauté pour garder les correctifs à jour.

Ai-je vraiment besoin de correctifs ?

Par défaut, Puppeteer et Playwright présentent des fuites importantes et faciles à détecter. Peu importe la qualité de vos proxys, de vos empreintes numériques et de vos scripts de comportement : si vous n'avez pas appliqué les correctifs, vous n'êtes qu'un énorme drapeau rouge pour tout site web majeur.

🕵️ Vous pouvez facilement tester votre configuration d'automatisation face aux principales détections modernes avec rebrowser-bot-detector (sources et détails)

Avant les correctifs 👎Après les correctifs 👍
avantaprès

Existe-t-il un remplacement direct facile ?

Si vous ne voulez pas vous embêter avec les correctifs et toutes les erreurs possibles, il existe une solution de remplacement direct pour vous. Ces packages appliquent simplement rebrowser-patches par-dessus le code d'origine, rien de plus.

Puppeteer : rebrowser-puppeteer (src) et rebrowser-puppeteer-core (src)

Playwright (Node.js) : rebrowser-playwright (src) et rebrowser-playwright-core (src)

Playwright (Python) : rebrowser-playwright (src)

Le moyen le plus simple de commencer est de modifier votre package.json pour utiliser les nouveaux packages tout en conservant l'ancien nom comme alias. Ainsi, vous n'avez pas besoin de modifier le code source de votre automatisation. Voici comment procéder :

  1. Ouvrez package.json et remplacez "puppeteer": "^23.3.1" et "puppeteer-core": "^23.3.1" par "puppeteer": "npm:rebrowser-puppeteer@^23.3.1" et "puppeteer-core": "npm:rebrowser-puppeteer-core@^23.3.1". Remarque : 23.3.1 n'est qu'un exemple, vérifiez la dernière version sur npm.
  2. Exécutez npm install (ou yarn install)

Une autre façon est d'utiliser directement les nouveaux packages à la place de ceux d'origine. Voici les étapes à suivre :

  1. Ouvrez package.json et remplacez les packages puppeteer et puppeteer-core par rebrowser-puppeteer et rebrowser-puppeteer-core. Ne changez pas les versions des packages, remplacez uniquement les noms.
  2. Exécutez npm install (ou yarn install)
  3. Recherchez et remplacez dans vos scripts toute mention de puppeteer et puppeteer-core par rebrowser-puppeteer et rebrowser-puppeteer-core

🚀 Et voilà ! Il ne vous reste plus qu'à visiter la page rebrowser-bot-detector et à tester votre navigateur patché.

Notre objectif est de maintenir et de prendre en charge ces packages de remplacement direct avec les dernières versions, mais nous nous concentrons principalement sur les versions récentes, donc si vous utilisez encore puppeteer 13.3.7 du début des années 90, il est peut-être temps de passer à une version supérieure. Il y a de fortes chances que cela ne casse rien, car l'API est assez stable dans le temps.

Correctifs disponibles

Corriger la fuite Runtime.Enable

Les bibliothèques d'automatisation populaires s'appuient sur la commande CDP Runtime.Enable, qui permet de recevoir des événements du domaine Runtime.. C'est crucial pour gérer les contextes d'exécution utilisés afin d'évaluer du JavaScript sur les pages, une fonctionnalité clé pour tout processus d'automatisation.

Cependant, il existe une technique qui détecte l'utilisation de cette commande, révélant que le navigateur est contrôlé par un logiciel d'automatisation comme Puppeteer ou Playwright. Cette technique est utilisée par tous les principaux logiciels anti-bot tels que Cloudflare, DataDome, et d'autres.

Nous avons préparé un article complet sur notre enquête concernant cette fuite, que vous pouvez lire sur notre blog.

Pour plus de détails sur cette technique, lisez l'article de blog de DataDome : How New Headless Chrome & the CDP Signal Are Impacting Bot Detection. En bref, il s'agit de quelques lignes de JavaScript sur la page qui sont automatiquement appelées si Runtime.Enable a été utilisé.

Notre correctif désactive la commande automatique Runtime.Enable sur chaque frame. À la place, nous créons manuellement des contextes avec des ID inconnus lorsqu'un frame est créé. Ensuite, lorsque du code doit être exécuté, il existe plusieurs façons d'obtenir l'ID du contexte.

1. Créer un nouveau binding dans le monde principal, l'appeler et enregistrer son ID de contexte.

🟢 Avantages : L'approche ultime qui conserve l'accès au monde principal et fonctionne avec les web workers et les iframes. Vous n'avez pas besoin de modifier votre code existant.

🔴 Inconvénients : Aucun découvert jusqu'à présent.

2. Créer un nouveau contexte isolé via Page.createIsolatedWorld et enregistrer son ID.

🟢 Avantages : Tout votre code sera exécuté dans un monde isolé séparé, empêchant les scripts de la page de détecter vos modifications via MutationObserver et d'autres techniques.

🔴 Inconvénients : Vous ne pourrez pas accéder aux variables et au code du contexte principal. Bien que cela soit nécessaire pour certains cas d'usage, le contexte isolé fonctionne généralement bien dans la plupart des scénarios. De plus, les web workers ne permettent pas de créer de nouveaux mondes, vous ne pouvez donc pas exécuter votre code dans un worker. C'est un cas d'usage de niche, mais cela peut avoir son importance dans certaines situations. Il existe une solution de contournement pour ce problème, veuillez lire How to Access Main Context Objects from Isolated Context in Puppeteer & Playwright.

Télécharger l’outil