Captcha > Tensorflow > Puppeteer

Hackeando um captcha do site do governo para um cliente. #HackCaptcha EP 1/3

Fui procurado por responsável por uma construtura dona de mais de 2000 unidades de apartamentos espalhados por toda cidade, que me disse:

Todo mês eu tenho 8 funcionários dedicados para acessar o site da prefeitura, digitar 2000 mil números de IPTUs, para cada número digitar o captcha de segurança, umas 3 vezes pois as letras do captcha estão sempre embaralhados, acessar uma tela selecionar a cota, fazer o download do pdf da cota IPTU, que no caso dessa prefeitura, cada folha de IPTU vem com 3 cotas, então eles tem que quebrar essa folha em 3 pedaços e pegar apenas a folha referente ao mês vigente. Seria possível criar um robô para fazer isso ?

Eu pensei: tenho que pensar em uma forma de descobrir como passar pelo captcha de segurança, baixar a pagina do pdf, dividir em 3 páginas e colocar em uma pasta cada uma das cotas separadas para pagamento.

Como sempre digo:

Meu caro amigo, se você me pagar o valor certo eu consigo enviar até um míssil para a lua.

Caro Trump, estou bricando em.

Pedi um tempo para criar um prova de conceito, que dando certo, ele vai me pagar por isso, então vamos rabiscar a arquitetura:

1 — Criar algoritmo de Machine Learning para apreender a ler os captchas. Para isso vou usar o google tensorflow. Porque ? Porque o código é meu e eu sempre quis usar e porque esta na moda. :)

2 — Usar uma ferramenta de testes de sites para simular o acesso ao site programaticamente. Pensei em usar o Puppeteer que é uma biblioteca do google utilizada para controlar eventos de acesso a sites no Chrome usando javascript. Mas porque? porque javascript é muito legal e compatível, caso eu queira transformar em uma aplicação.

Para a parte do Machine Learning, a lógica basicamente seria essa:

1 — Criar um script para acessar o website usando o Puppeteer e fazer o download de 10000 imagens dos captchas.

2 — Pedir a um parente desocupado renomear as 10000 imagens do captchas com o valor do captcha. Preciso dessa massa de dados para treinar o tensorflow, com isso ele vai conseguir descobrir os novos captchas.

3 —Passar para o tensorflow as imagens dos captchas renomeadas acima, com isso ele vai ser treinado para descobrir os próximos captchas.

Para a parte do acesso ao website do governo, criaremos um script efetuando os seguintes passos:

1 —Abrir um sessão ao site via browser Puppeteer.

2 — Digitar o numero de IPTU.

3 — Capturar a imagem do captcha, enviar para tensorflow resolver o valor do captcha, digitar o valor no campo o texto do website e submeter o formulário.

4 — Tirar 3 printscreem na pagina da cota do IPTU, criando um arquivo para cada cota.

Ufa muita coisa. Dar uma olhada no desenho no top da página, pois ler figura sempre foi mais fácil.

Então por hoje é só, isso só foi o draft da idéia, esse é o primeiro episódio da nossa serie de 1/3, nos próximos iremos entrar nos detalhes da implementação, pois a parte do Tensorflow esta dando muito trabalho, mas esta andando.

Achou esse artigo relevante ? Quer saber dos próximos episódios ? Você ou sua empresa tem um problema parecido ? Entre em contato comigo que não vou hesitar em lhe cobrar para resolver. :)

Expert in software development and data manipulation.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Samuel JB

Samuel JB

Expert in software development and data manipulation.

More from Medium

A JSON End-Point for shield.io badge

IoT Platform – MainFlux

Elliptic Curve Cryptography (ECC)