Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 3629|Resposta: 1

Use a ferramenta de infiltração SQLMAP para testes de injeção SQL

[Copiar link]
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:

O EF 6 executa instruções SQL nativas, problemas de injeção de parâmetros
https://www.itsvse.com/thread-10610-1-1.html

A EF Core Series (5) executa instruções SQL ou visualizações, procedimentos armazenados
https://www.itsvse.com/thread-9565-1-1.html

Parâmetros parametrizados C# usa sp_executesql para executar instruções SQL
https://www.itsvse.com/thread-3111-1-1.html

SQL Injection Book - Vulnerabilidade ASP Injection Contato Completo
https://www.itsvse.com/thread-2305-1-1.html

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âmetros
Próximo:[Transferir] para MySQL Advanced: comando de otimização de tabela
 Senhorio| Publicado em 17/06/2023 11:21:41 |
Mude para o seguinte, não há risco de injeção de SQL:

Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com