|
|
Publicado em 17/06/2023 11:10:55
|
|
|
|

Requisitos: Use a ferramenta de testes de penetração open source sqlmap para testar interfaces de sites quanto a riscos de injeção. A injeção SQL significa que a aplicação web não julga a legitimidade dos dados de entrada do usuário ou que o filtragem não é rigorosa, e o atacante pode adicionar instruções SQL adicionais ao final da consulta definida previamente na aplicação web, e implementar operações ilegais sem o conhecimento do administrador, de modo a enganar o servidor de banco de dados e executar consultas arbitrárias não autorizadas, a fim de obter ainda mais as informações correspondentes dos dados. Em resumo, éA interface backend executa instruções SQL unindo os parâmetros solicitados。
Revisar:
SQLMAP é uma ferramenta de teste de penetração de código aberto que automatiza o processo de detectar e explorar vulnerabilidades de injeção SQL e assumir o controle de servidores de banco de dados. Ele vem com um potente motor de detecção, muitos recursos específicos do testador de penetração definitivo e uma ampla variedade de switches, incluindo fingerprinting de banco de dados, obtenção de dados de bancos de dados, acesso ao sistema de arquivos subjacente e execução de comandos no sistema operacional via conexões fora de banda.
O SQL Map funciona logo de início e em qualquer plataformaVersões 2.6, 2.7 e 3.x do Python。
Construção do ambiente SQL Map
Download em Python:O login do hiperlink está visível.
Endereço de código aberto SQLMAP:O login do hiperlink está visível. Documentação de comandos SQLMAP:O login do hiperlink está visível.
Primeiro, o computador precisa instalar Python (omitido), e então usar o comando git para baixar o código-fonte, conforme segue:
Opções:
-h, --ajuda Mostrar mensagem básica de ajuda e sair -----Mostrar mensagem básica de ajuda e sair -hh Mostrar mensagem de ajuda avançada e sair----- --versão para ver o número da versão----------- Mostrar o número de versão do programa e sair -v nível de detalhe VERBOSO (0-6, padrão 1) --Nível de verbosidade: 0-6 (padrão 1)
Alvo:
Pelo menos uma das seguintes opções precisa ser definida para determinar a URL de destino, a saber: Pelo menos uma das seguintes opções deve estar incluída no comando de operação SQLMap para ser usada normalmente
-d String de Conexão DIRECT para conexão direta com banco de dados------------------- -u URL, --url=URL URL de destino --------------------- URL de destino (ex. "http://www.site.com/vuln.php?id=1") -l LOGFILE Analise alvos(ões) a partir do arquivo de log proxy Burp ou WebScarab ---- o alvo a partir do arquivo de log de um Burp ou outro proxy -x SITEMAPURL analisa o alvo a partir do arquivo remoto sitemap(.xml) --Parse alvos a partir do arquivo remote sitemap(.xml) Escanear múltiplos alvos dados em um arquivo textual -------- BULKFILE -r REQUESTFILE Carregar a solicitação HTTP de um arquivo ---------------Carregar a requisição HTTP de um arquivo -g GOOGLEDORK Processar resultados dork do Google como URLs alvo--- -c CONFIGFILE Carregar opções de um arquivo INI de configuração -------------- Carregar opções de um arquivo INI de configuração
Pedir:
As seguintes opções especificam como se conectar à URL de destino
--método=MÉTODO Forçar o uso de determinado método HTTP (por exemplo, PUT------------------ --data=DATA String de dados a ser enviada via POST usando o método POST------------------ --param-del=PARÁGRAFO.. Defina o símbolo para separar os valores dos parâmetros--------------------Caractere usado para dividir os valores dos parâmetros --cookie=COOKIE especifica o valor do cookie HTTP ---------------------- o valor do cabeçalho do cookie HTTP --cookie-del=COO.. Caractere usado para dividir os valores dos cookies------------------ Ao testar um ponto de injeção usando SQLMAP, você pode usar o parâmetro -v x para especificar a complexidade da informação do eco, que varia de [0~6] a 7 níveis, com padrão de 1.
0: Apenas erros em python são exibidos junto com informações críticas. 1: Exibir tanto informações básicas quanto informações de aviso. (padrão) 2: Exibir as informações de depuração ao mesmo tempo. 3: A carga útil injetada é exibida ao mesmo tempo. 4: Exibir as requisições HTTP ao mesmo tempo. 5: Exibir o cabeçalho da resposta HTTP ao mesmo tempo. 6: Exibir a página de resposta HTTP ao mesmo tempo.
ASP.NET Configuração do ambiente de injeção de núcleo
Crie um novo projeto web usando ASP.NET Core, escreva uma interface com injeção, e o código-fonte é o seguinte:
Interface de teste:
Testes de penetração comumente usados
Enumerar bancos de dados de SGBD
E use o Perfil do SQL Server para capturar a execução do SQL, como mostrado na figura a seguir:
selecione * de [Usuários] onde [Nome de usuário] = 'itsvse' UNIÃO TODOS SELECT NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(SELECIONAR nome FROM master.. sysdatabases PARA JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Enumere as tabelas do banco de dados especificado
O comando é o seguinte:
Para requisições HTTP complexas, você podevia o parâmetro -r(Carregando requisições HTTP de arquivos,Use a ferramenta Burp Suite para capturar requisições HTTP de pacotes) para carregar a requisição HTTP original de um arquivo de texto. Isso permite que você pule o uso de muitas outras opções (por exemplo, configurações de cookies, dados publicados, etc.).
O SQL Map é poderoso, veja a documentação para recursos mais avançados. (Fim)
|
Anterior:O EF 6 executa instruções SQL nativas, problemas de injeção de parâmetrosPróximo:[Transferir] para MySQL Advanced: comando de otimização de tabela
|