berstend / puppeteer-extra

💯 Teach puppeteer new tricks through plugins.
https://extra.community
MIT License
6.43k stars 739 forks source link

[Bug] - puppeteer-extra-plugin-recaptcha Detection Not Working hcaptcha #638

Closed julianodev closed 2 years ago

julianodev commented 2 years ago

Describe the bug

Plugin Stopped detecting hcaptcha on my site.

It was working normally, I can see the captcha. But the plugin cannot identify

image

Response Plugin: image

Versions "dependencies": { "@microsoft/signalr": "^6.0.4", "autocannon": "^7.9.0", "body-parser": "^1.20.0", "cors": "^2.8.5", "cross-env": "^7.0.3", "dotenv": "^16.0.0", "express": "^4.18.0", "hcaptcha-solver": "^1.0.2", "morgan": "^1.10.0", "nodemon": "^2.0.15", "puppeteer-extra": "^3.2.3", "puppeteer-extra-plugin-recaptcha": "^3.5.0", "puppeteer-extra-plugin-stealth": "^2.9.0", "python-shell": "^3.0.1", "random-useragent": "^0.5.0" }

felipesilva4 commented 2 years ago

I have the same issue, hcaptcha, in my logs: puppeteer-extra-plugin:recaptcha hasHcaptchaScriptTag true +0ms

but after this the lib wont work: { captchas: [], filtered: [], solutions: [], solved: [], error: null }

felipesilva4 commented 2 years ago

I see the problem, in my case is invisible hcaptcha, plugin recaptcha wasn't replacing html# to html?, so it didn't return the search params correctly, making it impossible to find hcaptcha

jonas-duarte commented 2 years ago

Check this PR.

Currently as workaround I updated it in my project direct inside the node_modules folder: node_modules\puppeteer-extra-plugin-recaptcha\dist\content-hcaptcha.js

felipesilva4 commented 2 years ago

pelo que vi lá na PR, o ideal era mudar dentro dos arquivos index tb, não apenas em hcaptcha, mas o meu problema era bem no invisible captcha do gov.br, não encontra o hcaptcha nem a pau @jonas-duarte. capturei o searchparams pelo iframe e depois dei o slution e enter solutions do plugin e deu bom, mas é uma gambiarra brava isso. já hcaptchas não invisiveis o plugin funcionou normal aqui.

berstend commented 2 years ago

This should be fixed in #640 which has been released:

Successfully published:
 - puppeteer-extra-plugin-recaptcha@3.6.0
SonecaJones commented 1 year ago

pelo que vi lá na PR, o ideal era mudar dentro dos arquivos index tb, não apenas em hcaptcha, mas o meu problema era bem no invisible captcha do gov.br, não encontra o hcaptcha nem a pau @jonas-duarte. capturei o searchparams pelo iframe e depois dei o slution e enter solutions do plugin e deu bom, mas é uma gambiarra brava isso. já hcaptchas não invisiveis o plugin funcionou normal aqui.

Tudo bem Felipe, sabe se foi corrigido esse problema? Não consigo detectar os hcaptchas do gov.br... Versão "puppeteer-extra-plugin-recaptcha": "^3.6.8". { captchas: [], filtered: [], solutions: [], solved: [], error: null }

Que dados do iframe voce passou para o solution?

Marxneves commented 10 months ago

pelo que vi lá na PR, o ideal era mudar dentro dos arquivos index tb, não apenas em hcaptcha, mas o meu problema era bem no invisible captcha do gov.br, não encontra o hcaptcha nem a pau @jonas-duarte. capturei o searchparams pelo iframe e depois dei o slution e enter solutions do plugin e deu bom, mas é uma gambiarra brava isso. já hcaptchas não invisiveis o plugin funcionou normal aqui.

Tudo bem Felipe, sabe se foi corrigido esse problema? Não consigo detectar os hcaptchas do gov.br... Versão "puppeteer-extra-plugin-recaptcha": "^3.6.8". { captchas: [], filtered: [], solutions: [], solved: [], error: null }

Que dados do iframe voce passou para o solution?

@felipesilva4 @SonecaJones Gostaria de quebrar o captcha do gov.br mas não vai de jeito nenhum, acharam alguma solução para isso ?

brunapereira commented 9 months ago

@Marxneves você conseguiu?

SonecaJones commented 9 months ago

Consegui resolver o problema da detecção mas infelizmente essas bibliotecas não funcionam mais com hcaptcha enterprise. Não há como passar o HCAPTCHA ENTERPRISE utilizando o puppeteer. mesmo que voce acerte o captcha manualmente o hcaptcha detecta que o chrome está sendo manipulado e considera a resposta errada. Esqueçam também a puppeteer stealth. já não funciona mais

Para passar o Hcaptcha enterprise voces devem mudar a abordagem

XavierGabriel92 commented 9 months ago

@SonecaJones vc conseguiu achar outra abordagem para seguir?

eveschipfer commented 8 months ago

eu consegui passar o captcha do gov.br

SonecaJones commented 8 months ago

eu consegui passar o captcha do gov.br

Manda dicas pfv

felipesilva4 commented 8 months ago

Então, o problema parece ser intriseco na real do provider da solução de captcha, realmente providers como o 2captcha não estão conseguindo quebrar o hcaptcha enterprise, sugiro fortemente testarem o uso do capmosnter! De nada!

daueee commented 8 months ago

eu consegui passar o captcha do gov.br

Dá uma luz pra gente meu caro.

daueee commented 8 months ago

Então, o problema parece ser intriseco na real do provider da solução de captcha, realmente providers como o 2captcha não estão conseguindo quebrar o hcaptcha enterprise, sugiro fortemente testarem o uso do capmosnter! De nada!

A resposta chega, acho que o problema uns dons problemas é a detecção do Chrome manipulado. Não aceita o post do token.

daueee commented 8 months ago

Consegui resolver o problema da detecção mas infelizmente essas bibliotecas não funcionam mais com hcaptcha enterprise. Não há como passar o HCAPTCHA ENTERPRISE utilizando o puppeteer. mesmo que voce acerte o captcha manualmente o hcaptcha detecta que o chrome está sendo manipulado e considera a resposta errada. Esqueçam também a puppeteer stealth. já não funciona mais

Para passar o Hcaptcha enterprise voces devem mudar a abordagem

Pode compartilhar a solução do problema de detecção ?

SonecaJones commented 8 months ago

Não uso mais o modulo do puppeteer, nem do puppeteer-extra-plugin-recaptcha então perdi a alteração. Mas recordo que em uma função do módulo recaptcha que busca por frames ativos. Era algo relacionado ao style visible.

content-hcaptcha.js

/* Find active challenges from invisible hcaptchas / private _findActiveChallenges() { const nodeList = document.querySelectorAll( this.baseUrls.map(url => div[style*='visible'] iframe[src*='${url}'][src*='hcaptcha.html']).join(',') ) return Array.from(nodeList) }

brunapereira commented 8 months ago

eu consegui passar o captcha do gov.br

Pode dizer pra gente como conseguiu?

daueee commented 8 months ago

@SonecaJones não consegui aplicar sua solução. Tive um pequeno avanço utilizando o Selenium-Driverless(python) e proxy rotativo o captcha não é solicitado. Mas não podemos considerar como uma solução definitiva.

renanccortes commented 7 months ago

Estou também atrás da solução do reconhecimento do captcha do gov.br, alguém aqui já conseguiu? poderia ajudar?

brunapereira commented 6 months ago

usando o puppeteer extra com stealth plugin e apontando para o chrome instalado na minha máquina, eu consegui que o captcha não fosse mostrado também. mas não consigo reproduzir isso em um servidor. ainda procuro uma maneira de como resolver esse captcha extra.

SonecaJones commented 6 months ago

O hcaptcha enterprise detecta utilização de puppeteer e similares. Mesmo que você resolva o captcha na mão ele não irá ser aceito. Podem fazer o teste. Obs. Mesmo com o stealth. Procurem utilização do Chrome sem ferramentas prontas ;)

juancarlossilva-MS commented 4 months ago

Tive um pequeno progresso em não ser detectado pelo hcaptcha do gov.br com a plataforma GoLogin + puppeteer, porém foi apenas algumas vezes e logo o captcha passou a aparecer novamente. Tentei utilizar o puppeteer-extra-plugin-recaptcha pra passar, ele retorna o token, faz a requisição mas falha retornando que o Captcha é inválido. A minha esperança nessa plataforma é o fato de o site aceitar quando resolvemos manualmente. Se voce resolver o captcha na mao ele deixa passar. Buscando agora formas de automatizar isso.