Open lucianozanita opened 6 years ago
@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? É possível gerar o token?
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
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.
kkkk boa, desatento meu, acostumado com o Whats...
Mas vamos la, tenho sim uma api de consulta inclusive te trago o comprovante.
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 < notifications@github.com> 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 https://github.com/jansenfelipe/cpf-gratis/issues/21#issuecomment-649730604, 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 < notifications@github.com> 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 https://github.com/jansenfelipe/cpf-gratis/issues/21#issuecomment-650123794, 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:
Utilizando descompilação, encontrei um link compatível com a antiga resposta.
Request:
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);
}
Request:
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;
}
Abri um app para capturar as requests do app. Consegui capturar uma vez, mas por algum motivo nas outras tentativas não foi registrado o request.
Request:
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);
}
Este 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]
Eis a print do request:
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?