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.:
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!}