html injection tutorial
Uma análise aprofundada da injeção de HTML:
Para ter uma melhor percepção da injeção de HTML, primeiro devemos saber o que é HTML.
HTML é uma linguagem de marcação, onde todos os elementos do site são escritos nas tags. Ele está sendo usado principalmente para a criação de sites. As páginas da Web estão sendo enviadas para o navegador na forma de documentos HTML. Em seguida, esses documentos HTML estão sendo convertidos em sites normais e exibidos para os usuários finais.
Este tutorial lhe dará uma visão geral completa da injeção de HTML, seus tipos e medidas preventivas, juntamente com exemplos práticos em termos simples para sua fácil compreensão do conceito.
como fazer um email falso
O que você aprenderá:
- O que é injeção de HTML?
- Tipos de injeção de HTML
- Como é realizada a injeção de HTML?
- Como testar contra a injeção de HTML?
- Como prevenir a injeção de HTML?
- Comparação com outros ataques
- Conclusão
- Leitura recomendada
O que é injeção de HTML?
A essência desse tipo de ataque de injeção é injetar código HTML nas partes vulneráveis do site. O usuário mal-intencionado envia código HTML através de qualquer campo vulnerável com o objetivo de alterar o design do site ou qualquer informação exibida ao usuário.
No resultado, o usuário pode ver os dados enviados pelo usuário malicioso. Portanto, em geral, a injeção de HTML é apenas a injeção de código de linguagem de marcação no documento da página.
Os dados enviados durante esse tipo de ataque de injeção podem ser muito diferentes. Podem ser algumas tags HTML, que apenas exibirão as informações enviadas. Além disso, pode ser todo o formulário ou página falsa. Quando esse ataque ocorre, o navegador geralmente interpreta os dados do usuário malicioso como legítimos e os exibe.
Alterar a aparência de um site não é o único risco que esse tipo de ataque traz. É bastante semelhante ao ataque XSS, em que o usuário malicioso rouba a identidade de outra pessoa. Portanto, roubar a identidade de outra pessoa também pode acontecer durante este ataque de injeção.
Tipos de injeção de HTML
Este ataque não parece ser muito difícil de entender ou executar, pois o HTML é considerado uma linguagem bastante simples. No entanto, existem diferentes maneiras de realizar esse tipo de ataque. Também podemos distinguir diferentes tipos desta injeção.
Em primeiro lugar, os diferentes tipos podem ser classificados pelos riscos que trazem.
Conforme mencionado, este ataque de injeção pode ser realizado com dois propósitos diferentes:
- Para alterar a aparência do site exibido.
- Para roubar a identidade de outra pessoa.
Além disso, esse ataque de injeção pode ser realizado por meio de diferentes partes do site, ou seja, campos de entrada de dados e o link do site.
No entanto, os principais tipos são:
- Injeção de HTML armazenado
- Injeção de HTML refletida
# 1) Injeção de HTML armazenado:
A principal diferença entre esses dois tipos de injeção é que o ataque de injeção armazenado ocorre quando o código HTML malicioso é salvo no servidor web e está sendo executado sempre que o usuário chama uma funcionalidade apropriada.
No entanto, no caso de ataque de injeção refletida, o código HTML malicioso não está sendo armazenado permanentemente no servidor da web. A injeção refletida ocorre quando o site responde imediatamente à entrada maliciosa.
# 2) Injeção de HTML refletida:
Isso pode ser novamente dividido em mais tipos:
- GET refletido
- POST refletido
- URL refletido
O ataque de injeção refletida pode ser executado de forma diferente de acordo com os métodos HTTP, ou seja, GET e POST. Gostaria de lembrar que com o método POST os dados estão sendo enviados e com o método GET os dados estão sendo solicitados.
Para saber qual método é usado para os elementos apropriados do site, podemos verificar a fonte da página.
Por exemplo , um testador pode verificar o código-fonte do formulário de login e descobrir qual método está sendo usado para isso. Em seguida, o método de injeção de HTML apropriado pode ser selecionado de acordo.
Injeção GET refletida ocorre, quando nossa entrada está sendo exibida (refletida) no site. Suponha que temos uma página simples com um formulário de pesquisa, que é vulnerável a este ataque. Então, se digitarmos qualquer código HTML, ele aparecerá em nosso site e, ao mesmo tempo, será injetado no documento HTML.
Por exemplo, inserimos um texto simples com tags HTML:
Injeção de HTML POST refletida é um pouco mais difícil. Ocorre quando um código HTML malicioso está sendo enviado em vez dos parâmetros corretos do método POST.
Por exemplo , temos um formulário de login, que é vulnerável a ataques de HTML. Os dados digitados no formulário de login estão sendo enviados com o método POST. Então, se digitarmos qualquer código HTML em vez dos parâmetros corretos, ele será enviado com o método POST e exibido no site.
Perguntas e respostas da entrevista .net para experientes
Para realizar um ataque de Reflected POST HTML, é recomendado o uso de um plugin de navegador especial, que falsificará os dados enviados. Um deles é o plugin “Tamper Data” do Mozilla Firefox. O plugin assume os dados enviados e permite que o usuário os altere. Em seguida, os dados alterados estão sendo enviados e exibidos no site.
Por exemplo, se usarmos esse plugin, enviaremos o mesmo código HTML ou código de formulário de pesquisa, se você gostaria de testar algo mais complicado Digite o texto para pesquisar
Se um código HTML sendo salvo em algum lugar for exibido, o testador pode ter certeza de que esse ataque de injeção é possível. Então, um código mais complicado pode ser tentado - para Exemplo , para exibir o formulário de login falso.
Outra solução é o scanner de injeção de HTML. A varredura automática contra esse ataque pode economizar muito do seu tempo. Gostaria de informar que não existem muitas ferramentas para o teste de injeção de HTML em comparação com outros ataques.
No entanto, uma solução possível é o aplicativo WAS. O WAS pode ser denominado como um scanner de vulnerabilidades bastante fortes, pois testa com as diferentes entradas e não apenas para com a primeira falha.
É útil para o teste, talvez conforme mencionado no plug-in do navegador “Tamper Data” acima, ele obtém os dados enviados, permite que o testador os altere e os envia ao navegador.
Também podemos encontrar algumas ferramentas de varredura online, onde você só precisa fornecer o link do site e a varredura contra o ataque de HTML será realizada. Quando o teste for concluído, o resumo será exibido.
Gostaria de comentar que, ao selecionar uma ferramenta de escaneamento, devemos prestar atenção em como ela analisa os resultados e se ela é precisa ou não.
No entanto, deve-se ter em mente que o teste manual não deve ser esquecido. Dessa forma, podemos ter certeza de quais entradas exatas são testadas e quais resultados exatos estamos obtendo. Também desta forma é mais fácil analisar os resultados também.
Com base na minha experiência em uma carreira de teste de software, gostaria de comentar que, para ambas as formas de teste, devemos ter um bom conhecimento desse tipo de injeção. Caso contrário, seria difícil selecionar uma ferramenta de automação apropriada e analisar seus resultados. Além disso, é sempre recomendável não se esquecer de testar manualmente, pois isso apenas nos dá mais certeza sobre a qualidade.
Como prevenir a injeção de HTML?
Não há dúvidas de que o principal motivo desse ataque é a desatenção e falta de conhecimento do desenvolvedor. Este tipo de ataque de injeção ocorre quando a entrada e a saída não são devidamente validadas. Portanto, a principal regra para evitar o ataque de HTML é a validação de dados apropriada.
Cada entrada deve ser verificada se contém algum código de script ou código HTML. Normalmente está sendo verificado se o código contém algum script especial ou colchetes HTML -,.
Existem muitas funções para verificar se o código contém quaisquer colchetes especiais. A seleção da função de verificação depende da linguagem de programação que você está usando.
Deve ser lembrado que bom teste de segurança também faz parte da prevenção. Gostaria de prestar atenção que, como o ataque de injeção de HTML é muito raro, há menos literatura para aprender sobre ele e menos scanner para selecionar para teste automático. No entanto, essa parte do teste de segurança realmente não deve ser perdida, pois você nunca sabe quando isso pode acontecer.
Além disso, tanto o desenvolvedor quanto o testador devem ter um bom conhecimento de como esse ataque está sendo executado. Uma boa compreensão desse processo de ataque pode ajudar a evitá-lo.
Comparação com outros ataques
Em comparação com os outros ataques possíveis, este ataque definitivamente não será considerado tão arriscado quanto Injeção SQL ou Ataque de injeção de JavaScript ou até mesmo XSS pode ser. Ele não destruirá todo o banco de dados nem roubará todos os dados do banco de dados. No entanto, não deve ser considerado insignificante.
Conforme mencionado anteriormente, o principal objetivo deste tipo de injeção é alterar a aparência do site exibido com propósito malicioso, exibindo suas informações ou dados enviados para o usuário final. Esses riscos podem ser considerados menos importantes.
No entanto, alterar a aparência do site pode custar a reputação da sua empresa. Se um usuário malicioso destruir a aparência do seu site, isso pode mudar as opiniões do visitante sobre a sua empresa.
Deve ser lembrado, que outro risco, que este ataque ao site traz, é roubar a identidade de outro usuário.
Conforme mencionado, com HTML Injection o usuário malicioso pode injetar a página inteira, que seria exibida para o usuário final. Então, se o usuário final indicar seus dados de login na página de login falsa, eles serão enviados para o usuário malicioso. Este caso é, obviamente, a parte mais arriscada deste ataque.
Deve ser mencionado que, para roubar dados de outros usuários, este tipo de ataque é selecionado com menos frequência, pois existem muitos outros ataques possíveis.
No entanto, é muito semelhante ao ataque XSS, que rouba os cookies do usuário e as identidades de outros usuários. Existem também ataques XSS, que são baseados em HTML. Portanto, os testes contra ataques XSS e HTML podem ser muito semelhantes e executados juntos.
Conclusão
Como a injeção de HTML não é tão popular quanto outros ataques, pode ser considerada menos arriscada do que outros ataques. Portanto, o teste contra esse tipo de injeção às vezes é ignorado.
Além disso, é perceptível que definitivamente há menos literatura e informações sobre injeção de HTML. Portanto, os testadores podem decidir não realizar este tipo de teste. No entanto, neste caso, os riscos de ataque de HTML podem não ser avaliados o suficiente.
qual é o melhor conversor de youtube para mp3?
Conforme analisamos neste tutorial, com este tipo de injeção, todo o design do seu site pode ser destruído ou até mesmo os dados de login do usuário podem ser roubados. Portanto, é altamente recomendável incluir a injeção de HTML para testes de segurança e investir bons conhecimentos.
Você já encontrou alguma injeção de HTML típica? Sinta-se à vontade para compartilhar suas experiências na seção de comentários abaixo.
Leitura recomendada
- Tutoriais detalhados do Eclipse para iniciantes
- Tutorial de teste de injeção de SQL (exemplo e prevenção de ataque de injeção de SQL)
- Tutorial Python DateTime com exemplos
- Tutorial de ataque de cross Site Scripting (XSS) com exemplos, tipos e prevenção
- Tutorial de injeção de JavaScript: teste e evite ataques de injeção de JS no site
- Tutorial de script de shell Unix com exemplos
- Selenium Encontrar Elemento por Tutorial de Texto com Exemplos
- Tutorial da função principal do Python com exemplos práticos