Charles Oliveira vs Poirier: Quem vai dominar o cage?

Beleza, pessoal! Hoje vou contar pra vocês sobre minha saga com o Charles Proxy. A parada foi a seguinte: precisava interceptar e analisar o tráfego de um aplicativo mobile pra entender como ele se comunicava com o servidor. Já tinha ouvido falar do Charles, mas nunca tinha colocado a mão na massa de verdade.

Charles Oliveira vs Poirier: Quem vai dominar o cage?

Primeiro, baixei o Charles, né? Tranquilo, instalei rapidinho. A primeira coisa que fiz foi configurar ele pra escutar o tráfego HTTP/HTTPS. Lá nas configurações, achei as opções de proxy e setei a porta (geralmente a 8888) e ativei a parada de proxy transparente.

Aí veio a parte do celular. No Wi-Fi, fui nas configurações avançadas e configurei o proxy manual. Coloquei o IP do meu computador (onde o Charles tava rodando) e a porta 8888. Até aí, sussa.

Só que aí que o bicho começou a pegar. O aplicativo começou a dar erro de certificado. Sacou? O Charles precisa gerar um certificado pra ele “fingir” que é o servidor e conseguir interceptar a comunicação HTTPS.

Fui lá no Charles, achei a opção de instalar o certificado no dispositivo mobile. Ele gerou um arquivo .pem, que eu tive que mandar pro meu celular. No Android, precisei instalar esse certificado nas configurações de segurança, como um certificado confiável. No iOS, é um processo parecido, mas um pouco mais chatinho.

Depois de instalar o certificado, aí sim o Charles começou a mostrar o tráfego do aplicativo. Comecei a ver as requisições, os headers, os payloads… uma beleza!

Charles Oliveira vs Poirier: Quem vai dominar o cage?

Só que nem tudo são flores. Alguns aplicativos usam “certificate pinning”, que é tipo uma trava de segurança extra pra evitar que alguém intercepte a comunicação. Nesses casos, o Charles não funciona tão fácil.

Pra burlar o certificate pinning, precisei usar uns truques mais avançados. Pesquisei bastante e achei uns scripts em Python que me ajudaram a “remendar” o aplicativo. Tipo, eu pegava o arquivo .apk (no Android) ou .ipa (no iOS), modificava o código pra desativar o certificate pinning e reinstalava o aplicativo no celular. Deu um trabalhão, mas no fim das contas consegui!

Outra coisa que aprendi foi a usar os filtros do Charles. Tipo, às vezes o tráfego é muito grande e fica difícil de achar o que você tá procurando. Daí você usa os filtros pra mostrar só as requisições pra um determinado domínio, ou só as requisições que contêm uma determinada palavra-chave. Facilita demais a vida!

No fim das contas, o Charles Proxy virou meu amigo. Me ajudou a entender como os aplicativos funcionam por baixo dos panos e a debugar problemas de comunicação. Recomendo pra todo mundo que trabalha com desenvolvimento mobile ou web! É uma ferramenta poderosa, mas que exige um pouco de paciência e pesquisa pra dominar. Mas vale a pena, viu?

Espero que tenham curtido a minha experiência com o Charles! Se tiverem alguma dúvida ou dica, deixem aí nos comentários!

Charles Oliveira vs Poirier: Quem vai dominar o cage?

Artigos relacionados

Comentário

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Artigos mais recentes