React Native Application
Análise da Aplicação React Native
Para confirmar se a aplicação foi construída com o framework React Native, siga estes passos:
Renomeie o arquivo APK com a extensão zip e extraia-o para uma nova pasta usando o comando
cp com.example.apk example-apk.zip
eunzip -qq example-apk.zip -d ReactNative
.Navegue até a pasta ReactNative recém-criada e localize a pasta de ativos. Dentro desta pasta, você deve encontrar o arquivo
index.android.bundle
, que contém o JavaScript React em um formato minificado.Use o comando
find . -print | grep -i ".bundle$"
para procurar o arquivo JavaScript.
Para analisar ainda mais o código JavaScript, crie um arquivo chamado index.html
no mesmo diretório com o seguinte código:
Podes carregar o ficheiro para https://spaceraccoon.github.io/webpack-exploder/ ou seguir estes passos:
Abre o ficheiro
index.html
no Google Chrome.Abre a Barra de Ferramentas do Programador pressionando Command+Option+J para OS X ou Control+Shift+J para Windows.
Clica em "Sources" na Barra de Ferramentas do Programador. Deverás ver um ficheiro JavaScript dividido em pastas e ficheiros, formando o pacote principal.
Se encontrares um ficheiro chamado index.android.bundle.map
, poderás analisar o código-fonte num formato não minificado. Os ficheiros de mapeamento contêm mapeamentos de origem, que te permitem mapear identificadores minificados.
Para procurar credenciais sensíveis e endpoints, segue estes passos:
Identifica palavras-chave sensíveis para analisar o código JavaScript. As aplicações React Native frequentemente utilizam serviços de terceiros como Firebase, endpoints de serviços AWS S3, chaves privadas, etc.
Neste caso específico, observou-se que a aplicação estava a utilizar o serviço Dialogflow. Procura um padrão relacionado com a sua configuração.
Foi uma sorte encontrar credenciais sensíveis codificadas no código JavaScript durante o processo de reconhecimento.
Referências
Last updated