Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
rebrowser-patches — Raccolta di patch per puppeteer e playwright per evitare il rilevamento dell'automazione e le perdite. Aiuta a evitare le pagine CAPTCHA di Cloudflare e DataDome. Facile da applicare/rimuovere, attivabile/disattivabile al bisogno. | Kitploit
Strumenti/GitHubGitHub/rebrowser/rebrowser-patches
CrawlerAnti-BotSpoofing dell'Impronta DigitaleBypass CAPTCHATop in Bypass CAPTCHA n.20Top in Spoofing dell'Impronta Digitale n.9

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
rebrowser/rebrowser-patches

rebrowser-patches

Raccolta di patch per puppeteer e playwright per evitare il rilevamento dell'automazione e le perdite. Aiuta a evitare le pagine CAPTCHA di Cloudflare e DataDome. Facile da applicare/rimuovere, attivabile/disattivabile al bisogno.

Vedi RepositorySito web
1.4k831231 anno faRevisionato da Kitploit

🪄 Patch per un'automazione del browser non rilevabile

Questa repository contiene patch per migliorare le librerie di automazione web più popolari. Nello specifico, si rivolge ai pacchetti puppeteer e playwright.

Alcuni aspetti delle librerie di automazione o del comportamento del browser non possono essere modificati tramite impostazioni o opzioni da riga di comando. Per questo motivo risolviamo questi problemi applicando patch al codice sorgente della libreria. Sebbene questo approccio sia fragile e possa rompersi quando il codice sorgente delle librerie cambia nel tempo, l'obiettivo è mantenere questa repository con l'aiuto della community per tenere le patch aggiornate.

Ho davvero bisogno di patch?

Nella configurazione predefinita, Puppeteer e Playwright presentano alcune significative falle facili da rilevare. Non importa quanto siano buoni i tuoi proxy, le impronte digitali e gli script comportamentali: se non hai applicato le patch, sei solo una grande bandiera rossa per qualsiasi sito importante.

🕵️ Puoi testare facilmente la tua configurazione di automazione per le principali rilevazioni moderne con rebrowser-bot-detector (fonti e dettagli)

Prima delle patch 👎Dopo le patch 👍
primadopo

Esiste un sostituto drop-in semplice?

Se non vuoi sporcarti le mani con le patch e tutti i possibili errori, per te esiste una soluzione drop-in. Questi pacchetti hanno semplicemente applicato rebrowser-patches sopra il codice originale, nient'altro.

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

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

Playwright (Python): rebrowser-playwright (src)

Il modo più semplice per iniziare a usarlo è modificare il tuo package.json per usare i nuovi pacchetti mantenendo il vecchio nome come alias. In questo modo non devi cambiare nessun codice sorgente della tua automazione. Ecco come fare:

  1. Apri package.json e sostituisci "puppeteer": "^23.3.1" e "puppeteer-core": "^23.3.1" con "puppeteer": "npm:rebrowser-puppeteer@^23.3.1" e "puppeteer-core": "npm:rebrowser-puppeteer-core@^23.3.1". Nota: 23.3.1 è solo un esempio, controlla l'ultima versione su npm.
  2. Esegui npm install (oppure yarn install)

Un altro modo è usare direttamente i nuovi pacchetti al posto di quelli originali. Ecco i passaggi da seguire:

  1. Apri package.json e sostituisci i pacchetti puppeteer e puppeteer-core con rebrowser-puppeteer e rebrowser-puppeteer-core. Non cambiare le versioni dei pacchetti, sostituisci solo i nomi.
  2. Esegui npm install (o yarn install)
  3. Trova e sostituisci nei tuoi script ogni menzione di puppeteer e puppeteer-core con rebrowser-puppeteer e rebrowser-puppeteer-core

🚀 Tutto qui! Visita semplicemente la pagina rebrowser-bot-detector e testa il tuo browser con le patch applicate.

Il nostro obiettivo è mantenere e supportare questi pacchetti sostitutivi drop-in con le ultime versioni, ma ci concentriamo soprattutto sulle versioni recenti; quindi, se stai ancora usando puppeteer 13.3.7 dei primi anni '90, potrebbe essere il momento giusto per aggiornare. C'è un'alta probabilità che non rompa nulla, dato che l'API è abbastanza stabile nel tempo.

Patch disponibili

Fix della falla Runtime.Enable

Le librerie di automazione più diffuse si affidano al comando CDP Runtime.Enable, che consente di ricevere eventi dal dominio Runtime.. Questo è fondamentale per gestire i contesti di esecuzione usati per valutare JavaScript nelle pagine, una funzionalità chiave per qualsiasi processo di automazione.

Tuttavia, esiste una tecnica che rileva l'utilizzo di questo comando, rivelando che il browser è controllato da software di automazione come Puppeteer o Playwright. Questa tecnica è usata da tutti i principali software anti-bot, come Cloudflare, DataDome e altri.

Abbiamo preparato un articolo completo sulla nostra indagine su questa falla, che puoi leggere nel nostro blog.

Per maggiori dettagli su questa tecnica, leggi il post del blog di DataDome: Come il nuovo Headless Chrome e il segnale CDP influenzano il rilevamento dei bot. In breve, si tratta di poche righe di JavaScript nella pagina che vengono chiamate automaticamente se Runtime.Enable è stato utilizzato.

La nostra correzione disabilita il comando automatico Runtime.Enable su ogni frame. Al suo posto, creiamo manualmente contesti con ID sconosciuti quando viene creato un frame. Poi, quando il codice deve essere eseguito, ci sono diversi modi per ottenere l'ID del contesto.

1. Crea un nuovo binding nel main world, invocalo e salva il relativo ID del contesto.

🟢 Pro: L'approccio definitivo che mantiene l'accesso al main world e funziona con i web worker e gli iframe. Non devi modificare nessuna parte del tuo codebase esistente.

🔴 Contro: Nessuno scoperto finora.

2. Crea un nuovo contesto isolato tramite Page.createIsolatedWorld e salva il suo ID.

🟢 Pro: Tutto il tuo codice verrà eseguito in un mondo isolato separato, impedendo agli script della pagina di rilevare le tue modifiche tramite MutationObserver e altre tecniche.

🔴 Contro: Non potrai accedere alle variabili e al codice del contesto principale. Sebbene questo sia necessario per alcuni casi d'uso, il contesto isolato funziona generalmente bene nella maggior parte degli scenari. Inoltre, i web worker non consentono di creare nuovi mondi, quindi non puoi eseguire il tuo codice all'interno di un worker. È un caso d'uso di nicchia, ma potrebbe essere rilevante in alcune situazioni. Esiste un workaround per questo problema: leggi Come accedere agli oggetti del contesto principale da un contesto isolato in Puppeteer & Playwright.

3. Chiama Runtime.Enable e poi immediatamente Runtime.Disable.

Questo attiva gli eventi Runtime.executionContextCreated, permettendoci di catturare l'ID del contesto corretto.

🟢 Pro: Avrai accesso completo al contesto principale.

Scarica lo strumento