Instrutor: Nesta palestra e nas
próximas palestras, falaremos sobre
um tipo popular de vulnerabilidades, chamado SQL Injections.
Antes de começarmos a falar sobre como isso ocorre
e como explorá-lo, vamos primeiro aprender o que é SQL.
Agora, se você estiver testando com caneta em um
determinado site, é provável que este site seja um pouco maior
do que sites menores, portanto provavelmente está usando um banco de dados.
A maioria dos sites, exceto sites muito
simples, usa bancos de dados, os bancos de dados são usados para armazenar dados,
para armazenar nomes de usuário, senhas, artigos de notícias, postagens
em blogs e fotos.
Tudo o que acontece no site, literalmente, é armazenado em
um banco de dados e o aplicativo da Web consulta o banco
de dados e exibe os dados para você ou para
os usuários, na tela.
Quando os usuários fazem algo, ele atualiza,
exclui ou modifica os dados existentes no banco de dados.
Essa interação, entre o aplicativo
Web e o banco de dados, ocorre usando uma linguagem chamada SQL.
Então, deixe-me mostrar o que eu quero dizer com
banco de dados, este
é apenas um
exemplo, não estou hackeando nada, literalmente, vou entrar
no banco de dados que está instalado em nossa máquina Metaploitable
e então estamos só vou ver o que foi instalado nele.
Então, eu não estou fazendo nenhum hacker, não há nada
aqui, nada sofisticado, basta fazer login no meu SQL.
E então eu estou colocando o
nome de usuário como root e o Metasploitable não usa uma senha
para a raiz, o que é muito ruim, mas obviamente é um sistema vulnerável.
Então, vou entrar e não estou hackeando nada, não
estou fazendo nenhuma injeção de
SQL, este é apenas o terminal do
MySQL, que o aplicativo da Web usaria para interagir com
o banco de dados.
Então, estou apenas tentando mostrar o que quero dizer com bancos
de dados e o que é salvo lá.
Então, a primeira coisa que
vou fazer é digitar os bancos de dados do programa.
E isso nos mostrará os bancos de dados
existentes em nosso servidor de destino e você poderá ver que
temos o esquema de informações. Esse é um banco
de dados padrão que contém informações
padrão, informações sobre todos os outros bancos de dados.
Portanto, este é instalado por padrão, quando você
instala o MySQL.
O restante foi instalado para cada aplicativo da web.
Então, podemos ver, temos um para o tikiwiki,
temos um para owas10, e esse é para esse Mutilllidae.
Também temos um chamado mysql, um metasploit
e um para dvwa,
que é o que estamos usando, o
aplicativo da web.
Assim, você pode ver
que, para cada aplicativo Web, na verdade, temos um
banco de dados e esse banco de dados contém
as informações usadas por esse aplicativo Web.
Deixe-me mostrar o que
está lá, então eu vou usar o banco de dados owas10.
Portanto, este é o que é, novamente, o da Mutilldae,
para este aplicativo da web.
E podemos ver a tabela, para que cada banco
de dados tenha uma tabela, tabelas e nas tabelas haja informações.
Então, eu vou dizer, "mostrar tabelas" para ver as tabelas
que temos.
E você pode ver, temos
uma tabela para contas, portanto, você pode assumir que esta tabela possui
informações sobre nomes de usuário, senhas e informações sobre os usuários.
Temos uma tabela para blogs, então provavelmente tem as entradas,
as postagens e os comentários.
Você pode ver os dados capturados, cartões de crédito, então
há uma tabela que contém cartões de crédito.
Agora, isso é enorme para sites de compras,
eles realmente teriam uma tabela de cartões de crédito
e as informações dos cartões de
crédito seriam armazenadas lá.
Basicamente, o banco de dados armazena
tudo, todos os dados usados no site.
Porque eles não são armazenados em arquivos, não é eficiente.
Então, vamos dar uma olhada nas contas e, se
eu apenas disser, "selecione", é exatamente assim que o aplicativo da
Web recuperaria informações do banco de dados e
selecionaria coisas, atualizar ou excluir.
Então, eu estou fazendo uma declaração select aqui, novamente, isso
não é hacking, não estou fazendo
nada, apenas selecionando coisas.
E eu vou selecionar estrela, o que
significa tudo, de contas.
Apóstrofo e, como podemos ver, temos o ID da conta, o nome de
usuário, a senha
e a assinatura da pessoa, e
se essa pessoa é um administrador.
Agora, essas colunas dependem da
tabela; portanto, é realmente a pessoa
que cria o banco de dados, cria as tabelas, as colunas e
os dados são inseridos pelo aplicativo Web.
Assim, você pode ver que temos
um usuário chamado admin e sua senha é adminpass.
Podemos ver que temos um usuário chamado adrian
e sua senha é alguma senha.
Então, isso é apenas para mostrar como são os bancos de dados e
para ter uma ideia, porque,
nos próximos vídeos, tentaremos explorar esses bancos de
dados e ter acesso semelhante a este.
Então, acabei de fazer login com um
nome de usuário
e uma senha agora, normalmente você não teria acesso
assim, apenas o administrador da web teria esse acesso.
Nos vídeos futuros, tentaremos executar alguns ataques para obter acesso semelhante a este,
para que tenhamos controle total sobre o
banco de dados, para que possamos ler
as coisas e ver se podemos escrever
ou modificar coisas .