Artigo Diretório
- Conhecimento necessário antes do teste
- Parte experimental
- 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
- 2. Kali usa carne para gerar código malicioso
- 3. Visite http: // guestbook website / message.asp e escreva um código malicioso
- 4. Invada o navegador e configure o site sequestrado
- 5. Que tipo de ataques XSS estão no experimento?
- Parte de injeção de SQL: DVWA + SQLmap + combate de injeção de Mysql
- 1. Construção do ambiente experimental
- 2. Enumere o nome do banco de dados usado atualmente e o nome do usuário
- 3. Enumere o banco de dados atual
- 4. Enumere o banco de dados e a tabela de dados do banco de dados especificado
- 5. Obtenha as informações de todas as colunas no banco de dados e tabela especificados
- Enumere todos os nomes de usuário e senhas na tabela de dados especificada e até o local
- Resumindo
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.
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
seguir, siga o processo e importe o arquivo do site pré-baixado, conforme mostrado na figura abaixo:
Aqui você deve selecionar uma porta que não está ocupado:
clique em Procurar, Encontre o arquivo correspondente e clique em OK:
aqui está tudo o que você precisa construir para a experimentação:
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:
Então podemos usar para http://127.0.0.1:设置好的端口号/message.asp
abrir nosso site, aqui eu uso a porta 8888, então uso http://127.0.0.1:8888/message.asp
o site para fazer login:
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
Então, podemos descobrir que há uma vulnerabilidade XSS em error.asp e add.asp:
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: ./beef
você pode começar,
mas! ! !
Na primeira vez, você pode ser lembrado de não usar a conta e a senha padrão, como este:
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
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:
finalmente entre e :wq
pressione enter, salve e saia:
aqui eu defino a senha e a conta para admin, após completar as operações acima, podemos ./beef
ver que nossa porta foi aberta com sucesso, e então vamos para o navegador Entrada: http://127.0.0.1:3000/ui/authentication
Em seguida, pule para a interface de login de beef e insira nossa senha modificada:
Após fazer o login, visitamos o código malicioso dentro do hook.js
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:
aqui você pode ver que nosso código está faltando no comentário, indicando que foi carregado com sucesso afim disso.
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:
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:
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/dvwa
para 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.
Em seguida, selecione o baixo nível de dificuldade no nível de segurança para iniciar o teste:
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,
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+url
para especificar o destino, depois o usamos --cookie+我们抓到的cookie
para verificar nossa identidade e, finalmente, o usamos --current-db
para 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,
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-db
ser 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 @%
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 --dbs
para 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.
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 --tables
listar 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
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 user
a tabela de dados do usuário no banco de dados especificado e, em seguida, usamos --columns
para 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
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 -C
para enumerar as colunas na tabela de dados e, em seguida, usamos --dump
para 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.
Em seguida, abrimos o arquivo salvo no arquivo de acordo com o caminho fornecido:
usamos o cd
comando para mudar para o diretório onde o arquivo está localizado e, em seguida, usamos para cat file1 +文件名
abrir o arquivo:
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