-
Notifications
You must be signed in to change notification settings - Fork 74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Captcha CPF/CNPJ deprecativo. #21
Comments
O site deathbycaptcha promete quebrar mas não sei ainda como, vou dar uma pesquisada. |
Existem serviços com anti-captcha.com e o 2captcha.com mas são pagos. Eles na verdade já fornecem a solução do captcha para vc automatizar o processo todo sem necessidade de interação do usuário, o que é bem interessante se vc estiver disposto a gastar algum dinheiro com o serviço. O cpf-gratis/cnpj-gratis nunca foi automatizado desta forma, ele apenas repassava para o usuário final responder o captcha e receber os dados. O ideal para continuar com o projeto sem custo seria apenas repassar a validação do recatpcha para o usuário final validar. Tem só q descobrir como fazer isso pegando a sitekey/public key e devolvendo a g-recaptcha-response. |
Pelo site http://cpf.receita.fazenda.gov.br/situacao/default.asp ainda a consulta é realizada pelo captcha antigo. |
No caso do CNPJ se vc clicar em "Captcha Sonoro" também volta para o antigo mas não temos como saber quanto tempo isso ainda deve ficar disponível. http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao.asp |
Fazendo a consulta pelo link https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATCTA/CPF/ConsultaSituacao/ConsultaPublicaSonoro.asp ao clicar em consultar estão validando se você "ouviu o audio"(clicou no botão para escutar) após isso ele permite digitar o captcha e consultar. Mas como o @FelipeCastello falou não é garantido. |
Olá pessoal Também estou com esse probleminhas. Sobre o CPF eles mudaram para o sistema de Captcha do Google é mais complicado. url_antiga = "http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_Solicitacao2.asp" essa solicita agora para pessoa ouvir áudio. O que notei foi que agora tem essa nova url http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_solicitacao3.asp acredito que atualizando a url para essa nova já resolve o cnpj. |
Eu tinha feito essa troca da URL aqui no sistema para testar o CNPJ (Cnpjreva_solicitacao3.asp). Até agora ta funcionando normalmente sem nenhuma alteração no código e aprece ser a melhor solução temporária. Se alguém quiser se aventurar um pouco, já vi a funcionalidade que queremos em outro projeto (repassar o recaptcha para o usuário validar). O projeto é em Python e usa umas libs externas mas já deve dar um norte para seguir. https://github.com/RocketMap/RocketMap Esse projeto da a opção de fazer os captchas manualmente pelo navegador ou de forma automática pelo 2captcha. Deve ser uma boa referência para ver como precisa ser tratado as requisições/Tokens do ReCaptcha |
Estou com o mesmo problema, alguém está tentando implementar o recaptcha da receita? Se eu puder ajudar em algo. |
Outro caminho é usar a url mobile, que vem dentro do app da receita tanto pra cpf como cnpj |
qual url @100n0m3 |
Cara chegando em casa já posto aqui, a url e os parâmetros. |
Não seria interessante acertar com o recaptcha? O @FelipeCastello deixou algumas dicas sobre isso, ainda não encontrei uma forma de trazer o recaptcha(da receita) mostrar na página do usuário final. |
Achei um princípio de explicação aqui de como pegar o sitekey e como funciona o ajax do recaptcha mas eles não entram no detalhe de como repassar ao user final (afinal é o serviço deles) |
@fazti o recaptcha atualmente é o captcha mais dificil de "burlar" devido que ao constante uso de um ip ele dificultar os desafios até o ponto de bloquea-lo. |
@kivervinicius Que coisa chata hein! O pessoal da receita podia liberar uma API para consulta usando o próprio captcha, da forma como estava, não era um problema, afinal, qual a diferença de uma consulta no site da receita e um outro site intermediando? No final tenho que ir na receita e consultar se o CPF é válido ou não. |
@fazti o problema é o abuso, por exemplo se nós estamos colocando em nosso sistema não é uma pessoa que está consultando e sim milhares, isso cria uma sobrecarga tremenda no serviço deles. Sou a favor de liberarem consulta via api por pagamento seria muito bom, pois precisamos deste tipo de serviços. |
@FelipeCastello Interessante, estou pesquisando aqui também alguma forma, mas pelo visto complicou :( |
@fazti creio que fazem isso para redução na carga dos servidores afinal imagina o Brasil todo fazendo consultas o dia todo, também acho que deveria haver uma api algo assim de preferencia free para desenvolvedores ou empresas sei la, sei q ta complicado. |
O ReCaptcha é um dos melhores que existem atualmente nesse serviço mas no nosso caso não queremos burlar o sistema deles com um robô "resolvendo" a validação. Queremos apenas poder repassar para o usuário dos nossos sites validarem. Eu sei q isso é possível pq é exatamente o que esses serviços anti-captcha fazem. Eles pegam a sitekey e enviam para uma pessoa de verdade que é paga para resolver e repassam a resposta para o usuário. @fazti Concordo! Não faz NENHUM sentido a Receita não fornecer algum tipo de API para consulta cadastral básica (pelo menos de empresas, CPF é um debate um pouco mais complexo em relação a privacidade), assim como não faz sentido o correios não fornecer uma api decente de consulta de CEP @kivervinicius na questão de abuso entra a questão de limitações. Não precisa ser um API pública, pode fazer um cadastro para liberar uma chave de acesso. Até X consultas diárias por chave liberada, se quiser mais para ter um volume corporativo ai se cobre separado. |
as alteraçoes do re-captcha vão muito alem do site da receita, foram praticamente todos os sites do governo, denatran, antt, receita, e por ai vai... |
@FelipeCastello concordo plenamente na cobrança de serviços excedentes, libera uma api pública e cobra os excedentes até para manter o serviço em pé. |
@100n0m3 geral ta sendo bloqueado, e em breve as brechas q encontramos serão corrigidas. |
@kivervinicius então, acabei de olhar em um dos meus repositórios e adivinha, visita da serpro. Site | Views | Unique visitors mail.serpro.gov.br | 2 | 1 com ctz vão fechar tudo :/ |
:( |
Bloquear vc diz desativarem as URLs? Pq acho difícil eles conseguirem bloquear algo se conseguirmos passar o campo do recaptcha para o usuário final. Isso seria uma questão com a equipe do ReCaptcha. |
@FelipeCastello o recaptcha bloqueia muitas requisições do mesmo ip e não deixa resolver o captcha. |
Eles lançaram uma API https://servicos.serpro.gov.br/api-gov/ acredito que estão fechando as portas mesmo pois esse serviço é pago, também acho que o que poderíamos fazer era repassar o reCAPTCHA para o cliente, fiz alguns testes mas me deparei com o problema de capturar o token de verificação do Google. A nova estrutura de requisição: idCheckedReCaptcha: E para mim o problema é pegar o "g-recaptcha-response" até tentei simular colocando diretamente o reCAPTCHA no meu sistema mas ele valida meu domínio. O problema seria simular o domínio da receita para o reCAPTCHA achar que ele está acessando pois achava de acesso é publica e com isso pegaria o token do reCAPTCHA e mandaria na nova estrutura de requisição da receita. |
@faelp22 o bom que é baratinho (sqn) |
Sempre existiu essa API deles o problema era que somente um grupo pequeno de pessoas/empresas podiam usar. Se não me falha a memória existia alguns pré-requisitos a serem preenchidos para vc poder contratar como comprovar que essas informações eram necessárias a sua atividade-fim (como bancos e financeiras que precisam fazer validação cadastral). Aparentemente eles deram uma nova cara ao serviço e não vi nenhuma menção a qualquer tipo de limitação de contratação (o que é bem interessante) mas a tabela de preços ta bem surreal e inviável para projetos pequenos. |
deve ta de marcação comigo kkk, vc não precisou modificar o user-agent do curl não?
|
Não mudei nada como pode ver no comando, porem se for por em produção recomendo a mudança, pega da explicação que deixei no post assim vc não corre o risco de ser bloqueado etc.. |
vc esta esquecendo de por o https na url por isso não esta funcionando. |
Pessoal, testei também o CAPTCHA sonoro, digitando o captcha antigo que aparece funciona perfeitamente. |
@100n0m3 Você sabe qual user-agent o app deles usa? Seria interessante deixar como o app usa. |
@100n0m3 Tem a possibilidade de consultar CPF? |
@fazti ta funcionando mesmo, mas está oscilando. |
@100n0m3 poxa, q merda em. kkk vlw! Você sabe qual é a url para o cpf? |
Vou pegar o user agent hora que chegar em casa, quanto a url de cpf ainda estou debugando o app deles, mas vai ficar massa pois não tem captcha na consulta de cpf, ou seja da pra ficar automático tipo um viacep |
@100n0m3 seria legal, estou usando o deathbycaptcha para quebrar o link sonoro, mas está caindo mto, e está dando ban muito rápido mesmo trocando o user-agent, estou querendo usar uma vpn para não banir o ip do server. |
@100n0m3 aparentemente a url é https://movel01.receita.fazenda.gov.br/servicos-rfb/v2/IRPF/cpf/consultar mas ainda não consegui fazer funcionar. |
Sim a url esta correta o problema são os parâmetros, temos vários parâmetros e tem um hash q penso eu que seja a parte mais complicada para debugar pois o app gera um hash penso eu que seja do cpf talvez data e hora, que é enviado junto com o header do post, no arquivo SutacaoCadastral referencia o arquivo headers que por sua vez chama o arquivo hash mas esta em java e eu não manjo de java :/ |
e a nomenclatura das variáveis deles esta me deixando doido |
@100n0m3 eu programo em Java, gera um gist por favor que eu dou uma olhada |
Não estou conseguindo converter os .smali para um formato mais legível, assim que tiver uma posição retorno aqui. |
Olá pessoal tudo bem? Então me deparei que estou precisando assim como vocês buscar as informações do CNPJ E CPF, estou usando o framework Laravel, e pelo que andei lendo aqui nos comentários está dificil de fazer essa integração pois a Receita não está disponibilizando isso certo? Vou ficar acompanhando aqui para ver se acham alguma outra solução. Obrigado |
Não sei se já tentaram, mas o endereço do Cnpjreva_Solicitacao3.asp está de pé ainda (se não me engano o código original usa o Cnpjreva_Solicitacao2.asp). Não sei até quando isso dura, mas pode servir de solução de contorno por enquanto... PS: desculpe se já postaram isso, me perdi um pouco na discussão :P |
@kivervinicius ou @100n0m3 conseguiram alguma solução pro caso do CPF? |
Alguém por ae ainda eu tenho uns aquivos para debugar e preciso de ajuda. para consultar cpf |
tenho uma api se quiser... me chama ae |
chamar no e-mail ? |
kkkk boa, desatento meu, acostumado com o Whats... Mas vamos la, tenho sim uma api de consulta inclusive te trago o comprovante. |
quanto ???? |
@bydylo ainda funciona acabei de testar, kkk, te mandei um email!. |
Manda um email pra mim (ctd.lucasmaia no gmail)
Busquei isso como um maluco e ainda me interessa.
Em qui., 25 de jun. de 2020 às 14:55, Gustavo Vedoveli <
[email protected]> escreveu:
… @bydylo <https://github.com/bydylo> ainda funciona acabei de testar, kkk,
te mandei um email!.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#21 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AIMGZX45NWSSJCAKHNNQRNDRYOFPHANCNFSM4EALFINA>
.
--
Lucas C. Maia
|
@lucas0maia te mandei um email :) ve ae se chegou |
Nada... manda pra lucasmaia EM agenciatatu.com.br
Em sex., 26 de jun. de 2020 às 08:11, Gustavo Vedoveli <
[email protected]> escreveu:
… @lucas0maia <https://github.com/lucas0maia> te mandei um email :) ve ae
se chegou
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#21 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AIMGZXYP2T5TFQWOXCCOYEDRYR66BANCNFSM4EALFINA>
.
--
Lucas C. Maia
|
kkk, acho q nao deu fica ai meu contato chama no zap 44-991559009 quem tiver interesse na consulta chama ae :) |
Boa noite, meus comparsas. Vim aqui compartilhar meu progresso na descoberta de uma API direta para consultas de CNPJ (demanda do trabalho). Aliás, se puder me seguir no GitHub eu ficaria feliz. Estou tentando chegar ao 100. Acabei percebendo não um mais dois links para consultar: Link 1:Utilizando descompilação, encontrei um link compatível com a antiga resposta. Passo 1: CaptchaRequest: GET /servicos-rfb-apprfb-core/apprfb-core/obtercaptcha HTTP/1.1
Host: p-app-receita-federal.estaleiro.serpro.gov.br:443 PHP: public static function getCaptchaFromMiniFazenda()
{
/**
* Metodo GET
* URL: captcha
*
* retorno:
* {
* "captcha": "...", //base64
* "audio": null, // Provavelmente não funciona
* "token": "...", //token do captcha
* "letras": "..." //letras selecionáveis do app
* }
*/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://p-app-receita-federal.estaleiro.serpro.gov.br:443/servicos-rfb-apprfb-core/apprfb-core/obtercaptcha");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$json = curl_exec($ch);
curl_close($ch);
return json_decode($json, true);
} Passo 2: Obter resultadosRequest: POST /servicos-rfb-apprfb-core/apprfb-core/obtercaptcha HTTP/1.1
Host: p-app-receita-federal.estaleiro.serpro.gov.br:443
token: Hash::generateHash("Sup3RbP4ssCr1t0grPhABr4sil", ???)
aplicativo: Pessoa Jurídica
versao: 6.0.1
dispositivo: Moto G Play
versao_app: 3.2
Content-Type: application/x-www-form-urlencoded
cnpj=XXXXXXXXX&token=[token]&resposta=[XXXX] PHP: //Pre requisito
<?php
//Pré-requisito
class Hash {
//private static $ALGORITIMO_HASH = "HmacSHA1";
private static $ALGORITIMO_HASH = "sha1"; //HmacSHA1
function __constructor() {
}
// Esta função é a reescrita de Hash.generateHash do app (em Java)
// Ela é passada como parâmetro para o header "token", porém requer
// um parâmetro extra desconhecido...
public static function generateHash(string $key, string $text) {
try {
$mac = hash_hmac('sha1', $text, $key, true);
return bin2hex($mac);
} catch (\Exception $e) {
return null;
}
}
public static function validateHash(string $key, string $text, string $hash) {
$hash2 = self::generateHash($key, $text);
return $hash2 === $hash;
}
}
// retorna os dados do CNPJ
function fromMiniFazenda(string $token, string $capicci, string $cnpj)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, self::$API_MINISTERIO_FAZENDA['consulta']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'token' => Hash::generateHash("Sup3RbP4ssCr1t0grPhABr4sil", ???), //??? deve ser algo que resulta em ""44d4ba14482a7be2a495e73" (a primeira resposta deste post)
'aplicativo' => 'Pessoa Jurídica',
'plataforma' => 'Android',
'versao' => '6.0.1',
'dispositivo' => 'Moto G Play',
'versao_app' => '3.2',
'Content-Type' => 'application/x-www-form-urlencoded'
]);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'cnpj' => $cnpj,
'token' => $token,
'resposta' => $capicci
]));
$json = curl_exec($ch);
curl_close($ch);
echo $json;
$instance = new CNPJ($cnpj, json_decode($json, true));
return $instance;
} Link 2 (Captura de requests)Abri um app para capturar as requests do app. Passo 1: CaptchaRequest: GET /servicos-rfb-apprfb-core/apprfb-core/obtercaptcha HTTP/1.1
Host: p-app-receita-federal.estaleiro.serpro.gov.br:443 PHP: public static function getCaptchaFromMiniFazenda()
{
/**
* Metodo GET
* URL: captcha
*
* retorno:
* {
* "captcha": "...", //base64
* "audio": null, // Provavelmente não funciona
* "token": "...", //token do captcha
* "letras": "..." //letras selecionáveis do app
* }
*/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://p-app-receita-federal.estaleiro.serpro.gov.br:443/servicos-rfb-apprfb-core/apprfb-core/obtercaptcha");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$json = curl_exec($ch);
curl_close($ch);
return json_decode($json, true);
} Passo 2: obter os dadosEste eu provavelmente não vou conseguir reproduzir, pois existe uma verificação se a url está sendo requisitada pelo app. Link: https://p-app-receita-federal.estaleiro.serpro.gov.br:443/servicos-rfb-apprfb-cnpj/apprfb-cnpj/detalhe-empresa/[CNPJ SEM NUMERO] O mais triste de isso tudo é o fato de SUPER PASS ser o código secreto por trás do dos Tokens. Espero que isso ajude alguém a terminar o trabalho. |
Olá, hoje 23/10/2017 a Receita federal passou a não utilizar mais o captcha padrão e começou a usar o recaptcha, o que inviabilizou o captcha usado anteriormente, saberia alguma forma de resolver este problema?
The text was updated successfully, but these errors were encountered: