Identificar um Cenário que Requer Evasão
Nesta etapa, você entenderá por que os scripts tamper são necessários. Aplicações web frequentemente empregam filtros básicos para prevenir padrões comuns de injeção SQL. Por exemplo, um filtro pode bloquear espaços ou substituí-los por outros caracteres, ou pode bloquear palavras-chave como UNION ou SELECT. Quando os payloads padrão do sqlmap são bloqueados, você precisa modificá-los para contornar esses filtros.
Considere um cenário hipotético onde uma aplicação web filtra espaços na entrada do usuário. Se o sqlmap tentar injetar um payload como ' OR 1=1--, o filtro pode transformá-lo em 'OR1=1--, tornando o payload ineficaz. Os scripts tamper ajudam o sqlmap a gerar payloads alternativos que podem contornar tais restrições.
Para simular uma varredura básica do sqlmap sem quaisquer técnicas de evasão, usaremos uma URL fictícia. Isso nos ajudará mais tarde a comparar os payloads gerados com e sem scripts tamper.
Execute o seguinte comando sqlmap para iniciar uma varredura básica contra um alvo fictício. Observe que este alvo não é realmente vulnerável, mas nos permite observar o comportamento do sqlmap e os payloads gerados.
sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" --dump --batch --forms --level 1 --risk 1 --parse-errors --technique=U --eta --output-dir=/tmp/sqlmap_output_no_tamper
Este comando tentará realizar uma varredura básica de injeção SQL. A opção --dump é usada para extrair dados, --batch executa em modo não interativo, --forms verifica formulários, --level 1 --risk 1 define o nível de detecção e risco, --parse-errors analisa mensagens de erro, --technique=U especifica injeção SQL com consulta UNION, --eta mostra o tempo estimado de chegada, e --output-dir especifica o diretório de saída.
Observe a saída. Embora este comando específico possa não encontrar vulnerabilidades no URL fornecido (pois é um site de teste geral e não configurado especificamente para o propósito deste laboratório), o objetivo é ver a tentativa inicial do sqlmap e entender que, às vezes, essas tentativas podem ser bloqueadas por filtros.