Instrutor: Em todas
as palestras até agora, estávamos explorando as injeções de SQL manualmente.
Por isso, injetamos o código no URL ou
nas caixas de texto.
Neste vídeo, vou mostrar uma ferramenta chamada sqlmap que permite
fazer tudo o que aprendemos até agora e
ainda mais coisas.
Essa ferramenta pode ser usada em bancos de dados
MySQL em que estávamos usando o exemplo.
Também pode ser usado no Microsoft SQL,
Oracle e outros tipos de banco de dados.
A ferramenta é muito útil e é muito útil em muitos casos.
Às vezes, as injeções não são tão boas quanto
as que vimos.
Às vezes, você obtém apenas uma saída para cada
registro e precisa percorrer todas as saídas.
Portanto, a ferramenta pode automatizar isso
e fazer tudo por você muito mais fácil e muito mais simples.
Então, primeiro vamos obter o
URL que estávamos usando para a injeção.
Então, eu tenho esse arquivo de texto aqui que estávamos usando
e tenho a URL que estávamos usando antes.
Então é o usuário. info. php,
nome de usuário é admin, senha, adminpass.
Você realmente não precisa saber o nome de
usuário e a senha, então, na verdade, vou colocar qualquer coisa aqui.
Portanto, apenas para supor que não
sabemos a senha, estamos apenas injetando injeções de SQL.
Nós realmente não precisamos saber nada disso.
Tudo o que vou fazer é
copiar isso e depois vou executar o sqlmap.
E eu vou fazer você para especificar a URL e
eu vou colocar meu alvo.
E eu
vou ter certeza de que o coloque entre
duas aspas para que não ignore
nada, nenhum sinal no meio,
então temos alguns sinais e caracteres no
meio que eu quero que tudo seja tratado como um URL.
Então, tudo o que fiz foi sqlmap -u meu destino.
E pressionarei Enter
e a ferramenta examinará automaticamente os parâmetros, para
examinar as informações do usuário, o
nome de usuário e a senha
para ver se algum deles é injetável
e, depois disso, ele será
armazenado em sua memória.
Então, saberemos que isso
é injetável e poderemos explorar ainda mais o alvo.
Então, como você pode
ver agora, está pensando que nosso alvo poderia ser o MySQL ou o PostgreSQL.
Ele está me perguntando se deveria pular outros testes e eu
vou dizer sim
porque sei que é MySQL.
E agora está me perguntando se deve fazer todos os testes para
os dois bancos de dados?
E eu vou dizer sim, assumindo que não
tenho certeza de qual é.
Eu sei que é MySQL, mas eu vou deixar fazer o seu trabalho
e vamos ver se ele pode fazer isso corretamente ou não.
Então, no
momento, está verificando se é PostgreSQL.
E eu suponho que ele saberá que não
é e então saberá que é MySQL.
Acabou de descobrir que o nome de usuário
parece ser injetável.
E com certeza, está nos dizendo
aqui que o parâmetro username é vulnerável e
podemos injetá-lo.
Então, está me perguntando se eu quero verificar os outros parâmetros,
como a senha e todos eles?
Posso dizer sim e deixá-lo fazê-lo, mas vou
dizer Não,
porque não me importo se ele usar apenas o nome
de usuário para a injeção, então está tudo bem.
Agora, o sqlmap sabe que o destino é injetável e
sabe que vai usar o parâmetro username para
injetar coisas.
E eu posso ver que ele descobriu
que está executando o Linux Ubuntu e que está usando PHP
com Apache 2. 2) 8)
E está usando o MySQL Server como servidor de banco de dados.
Então, vamos executar o sqlmap --help e ver o que
podemos fazer agora.
Agora, essa ferramenta é realmente
grande e permite que você faça muitas coisas.
Portanto, neste vídeo, na verdade, vou
mostrar uma rápida olhada
no vídeo e recomendo que você gaste mais tempo com ele e tente
ver o que mais você pode fazer com ele.
Ok, então vamos tentar obter o usuário atual e vamos
tentar obter o banco de dados atual.
Então, vamos usar o mesmo comando
que usamos anteriormente e adicionarei dbms para obter os bancos
de dados atuais.
Ou dbs, desculpe.
Como você pode ver, temos todos os bancos de dados que temos.
Então nós temos o dvwa, temos o information_schema, o
metasploit, o mysql, o owasp10, que
era o que estávamos explorando antes e o tikiwiki.
Agora, se fizermos o usuário atual, você poderá ver
que somos root e, se
eu fizer o banco de dados
atual, veremos que owasp10 é o nosso banco de dados atual.
Então agora vamos tentar obter as
tabelas para owasp10, lembre-se de quando fizemos um nome de tabela
selecionado em information_scheme. tabelas
em que table_schema é igual a owasp10.
Vamos fazer, deixaremos o sqlmap fazer tudo isso
por nós e, assim, o comando será,
pediremos que ele obtenha todas as tabelas para nós.
E usaremos a
opção D para especificar o banco de dados
e nosso banco de dados será chamado owasp10.
E como você pode ver, isso nos deu todas
as tabelas que existem e lembre-se, é a mesma coisa.
Temos contas, blogs_table
e cartões de crédito também.
E agora, se queremos
obter as colunas, podemos usar
o mesmo comando novamente e diremos me traga as
colunas em que a tabela é chamada de contas
e o banco de dados é owasp10.
E bem aqui podemos ver que temos as colunas.
Portanto, temos o is_admin, a senha e o nome de
usuário e podemos obter
os dados usando a opção dump.
Portanto, é o mesmo comando que usamos anteriormente.
Portanto, estamos obtendo a tabela chamada contas e o
banco de dados chamado owasp10.
Quero que você me traga todos os dados.
E aqui vamos nós, temos todos os dados.
Nós temos o admin, sua senha, adminpass
e temos o adrian e a senha dele é alguma senha.
E nós temos todos os dados aqui.
Então, como eu disse, a ferramenta é muito útil.
Ele pode ser usado para tornar nossa vida muito mais
fácil e faz tudo automaticamente e pode
fazer tudo o que fizemos e
pode até fazer mais coisas.