📦Insecure Data Storage
Definição
Essa missconfiguration ocorre tanto no Android quanto no Iphone.
Insecure Data Storage é quando a aplicação armazena de forma insegura dados sensíveis do lado do cliente, possibilitando assim invasores com acesso ao dispositivo, recuperar esses dados.
Armazenamento de dados
Plist files
NSUserDefaults
SQLite Databases
Core Data
Keychain
Esses são os tipos que o iOS suporta, eu poderia colocar exemplo de cada um deles aqui, mas iria ficar muito extenso, então caso queira ver como cada um funciona recomendo pesquisar sobre. Além do mais, o aplicativo que iremos explorar já aborda dois tipos de armazenamento: plist e sqlite
Exploit time
Bem, vamos começar entrando no nosso aplicativo de teste, você pode efetuar login com as seguintes credenciais:
User: securestore
Pass: securestore
Ao logar na aplicação vemos uma opção de adicionar conta bancária, e logo abaixo vemos para mostrar os dados de uma conta bancária através de email, podemos deduzir que esses dados são armazenados em algum lugar obvio, vamos tentar achar achá-los com o objection.
Ao entrar no diretório aonde a aplicação salva os dados podemos ver arquivos .plist e um .db, vamos ver um exemplo de dados em plist:
Agora vamos para o que interessa, o .db, o objection tem suporte para sqlite então podemos visualizar facilmente o conteúdo do arquivo:
Agora vamos pegar os dados:
Impacto
Vamos ao mundo da imaginação agora, suponhamos que exista um banco chamado "Richs Company", esse banco possui um aplicativo que armazena os dados do cartão do lado do cliente para fazer a verificação na hora de entrar no aplicativo do cartão.
Roberto é um cliente desse banco, ele é assaltado por Cleiton, o Hacker.
Cleiton sabe dessa missconfiguration do banco e logo abre o app com o objection para pegar os dados, depois disso ele simplesmente pode utilizar o cartao do Roberto.
Agora basta aplicar o mesmo conceito em um ambiente real.
Last updated