React Native Application
Análise de Aplicação React Native
Para confirmar se a aplicação foi construída no framework React Native, siga estes passos:
Renomeie o arquivo APK com uma 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 nova pasta ReactNative e localize a pasta assets. 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:
Você pode fazer o upload do arquivo para https://spaceraccoon.github.io/webpack-exploder/ ou seguir estas etapas:
Abra o arquivo
index.html
no Google Chrome.Abra a Developer Toolbar pressionando Command+Option+J para OS X ou Control+Shift+J para Windows.
Clique em "Sources" na Developer Toolbar. Você deve ver um arquivo JavaScript que está dividido em pastas e arquivos, formando o pacote principal.
Se você encontrar um arquivo chamado index.android.bundle.map
, poderá analisar o código-fonte em um formato não minificado. Os arquivos de mapa contêm mapeamento de origem, que permite mapear identificadores minificados.
Para procurar credenciais e endpoints sensíveis, siga estas etapas:
Identifique palavras-chave sensíveis para analisar o código JavaScript. Aplicações React Native costumam usar serviços de terceiros como Firebase, endpoints de serviço AWS S3, chaves privadas, etc.
Neste caso específico, observou-se que a aplicação estava usando o serviço Dialogflow. Procure por um padrão relacionado à sua configuração.
Foi uma sorte que credenciais sensíveis codificadas foram encontradas no código JavaScript durante o processo de reconhecimento.
Referências
Last updated