OWASPIL quebrando o Captcha


O desenvolvedor do site implementou um mecanismo Captcha para evitar a invasão de formulários, e nosso objetivo no desafio é escrever um código que seja capaz de contornar o mecanismo e ainda inundar seu formulário com perguntas..

Então, neste desafio precisamos resolver 15 desafios captcha em 30 segundos.

Resolvendo o desafio:

O desafio é assim:

Para resolver o desafio, escrevemos um pequeno script Python que resolverá o captcha usando um módulo pytesseract que é um módulo OCR muito bem-sucedido na minha opinião. Link para o módulo

O código completo para resolver o desafio é assim.:
Primeira parte do código Python 

Link para o código no meu Github

Explicação do script:
A função get_image usa o módulo de solicitações para baixar a imagem do site e salvá-la localmente.

A função get_captcha usa módulos PIL (Pacote Python para trabalhar com imagens) ו-pytesseract (Uma ferramenta baseada em OCR usada para ler texto dentro de uma imagem).

O código principal usa ambas as funções para baixar a imagem e extrair o texto dela, em seguida, envia o resultado para o site atraves do seguinte pedido.

Abrimos o Burp Suite para ver quais parâmetros são passados no POST enviado quando você clica em enviar. Pode-se ver que os parâmetros são: captcha ו-submit.

Agora, vamos criar uma nova solicitação POST com os parâmetros que mencionamos anteriormente e executar o código:

E assim recebemos a bandeira:

OWASP-IL{YouAreTheCaptchaMaster!}

Outros artigos que você pode ter interesse: