CouchDB - For Fun and Profit
CouchDB é um de banco de dados orientado a documentos, uma implementação de NoSQL que pode ser acessado através de sua API JavaScript Object Notation (JSON) RESTful. Vamos falar sobre como explorá-lo para reunir informações para um penetration test ou análise de vulnerabilidades.
O que é CouchDB
CouchDB[1] é um de banco de dados orientado a documentos, uma implementação de NoSQL que pode ser acessado através de sua API JavaScript Object Notation (JSON)[2] RESTful. O projeto, atualmente é desenvolvido na plataforma Erlang OTP[3] devido à sua ênfase em tolerância a falhas.
Uma lista de empresas que utilizam o CouchDB para o desenvolvimento de softwares pelo mundo, pode ser visualizada no site do desenvolvedor[4].
Sua porta de utilização é a 5984 sob o protocolo TCP. O daemon responsável por sua execução é o "beam", que faz parte do Erlang OTP. Conforme figura abaixo: Por padrão, CouchDB instala todos seus recursos (exemplo: apt-get install couchdb) sem exigir o cadastro de senha para se autenticar em funções vitais do software, fazendo com que os administradores/desenvolvedores assumam essa tarefa.
O CouchDB disponibiliza suas respostas em clear-text, possibilitando ataques do tipo Man-in-The-Middle[5], conseguindo facilmente furtar dados importantes que estão trafegando entre o servidor e o cliente, um exemplo clássico, seria capturar o usuário e senha para se autenticar posteriormente, já que a aplicação utiliza sistema básico de autenticação (Basic Authentication), visualizar os nomes das databases, usuários etc.
Uma lista de empresas que utilizam o CouchDB para o desenvolvimento de softwares pelo mundo, pode ser visualizada no site do desenvolvedor[4].
Características
Cada documento tem sua identificação única no banco de dados, e o CouchDB oferece uma RESTful HTTP API para ler e atualizar (adicionar, atualizar, editar, excluir) os documentos do banco de dados.Sua porta de utilização é a 5984 sob o protocolo TCP. O daemon responsável por sua execução é o "beam", que faz parte do Erlang OTP. Conforme figura abaixo: Por padrão, CouchDB instala todos seus recursos (exemplo: apt-get install couchdb) sem exigir o cadastro de senha para se autenticar em funções vitais do software, fazendo com que os administradores/desenvolvedores assumam essa tarefa.
O CouchDB disponibiliza suas respostas em clear-text, possibilitando ataques do tipo Man-in-The-Middle[5], conseguindo facilmente furtar dados importantes que estão trafegando entre o servidor e o cliente, um exemplo clássico, seria capturar o usuário e senha para se autenticar posteriormente, já que a aplicação utiliza sistema básico de autenticação (Basic Authentication), visualizar os nomes das databases, usuários etc.