O que é um ataque de injeção de JavaScript?
1. A injeção de JavaScript deve inserir uma parte do código JS na barra de endereço do navegador para alterar o conteúdo das variáveis da página JS e das etiquetas da página.
Usando a injeção de JavaScript, os usuários podem alterar seu conteúdo sem fechar ou salvar as páginas da web, o que é feito na barra de endereços do navegador. A sintaxe do comando é a seguinte:
JavaScript: Alert (#Comando#)
Por exemplo, se você deseja ver uma caixa de aviso de alerta no site http://www.example.com, primeiro digite o URL na barra de endereços e aguarde a página para carregar, exclua o URL e digite:
JavaScript: Alert (Hello World)
Como um novo URL. Isso exibirá uma caixa de aviso do Hello World, usando essa técnica para alterar quase tudo em uma página da web, como uma imagem. Suponha que exista uma imagem de logotipo do site e encontramos um dos código HTML olhando para o arquivo de origem da página:
<Img nome = hi src = hello.gif>
A imagem se chama Hi, o arquivo de origem é hello.gif, queremos alterá -lo para o arquivo tchau.jpeg armazenado em nosso site (http://www.mysite.com), portanto, o endereço completo da URL da imagem é http://www.mysite.com/bye.
javascript: alert (document.hi.src = http: //www.mysite.com/bye.jpeg)
Você verá um aviso http://www.mysite.com/bye.jpegalert e a imagem é alterada. Deve -se notar que essas mudanças são apenas temporárias! Se você atualizar a página ou entrar novamente, suas alterações desaparecerão porque você acabou de fazer essas alterações no seu PC, não no servidor da Web.
Usando o mesmo método que podemos visualizar ou alterar o valor da variável, por exemplo, encontramos um pedaço de código como este em uma página da web:
<Idioma do script = javascript> var a = teste </sCript>
Isso significa que o valor da variável A é teste e agora entramos:
JavaScript: Alert (A)
Então mudamos seu valor para olá:
javascript: alert (a = olá)
A injeção de JavaScript é geralmente usada para alterar as propriedades de formulário, assumindo que haja um pedaço de código como este:
<nome de formato = formato ação = send.php método = post> <time de entrada = nome oculto = e -mail [email protected]> <time de entrada = nome do texto = nome> <entrada de entrada = submeter valor = submeter> </form>
Queremos que o formulário seja enviado para nossa caixa de correio, não a alguém, em algum lugar.com. Você pode usar o seguinte comando:
javascript: alert ([email protected])
Talvez você tenha notado a hierarquia desses comandos:
Vamos explicar em ordem da esquerda para a direita:
1) O documento está à esquerda
2) Depois, há o nome do objeto que queremos alterar (como document.hi.src) ou o objeto que ele contém (como document.format.mail.value)
3) Finalmente, o atributo que queremos mudar (como o caminho da fonte: document.hi.src ou valor variável: document.format.mail.value)
4) Use a separação do número.
5) Quando queremos alterar o valor do atributo, usamos o = sinal e o novo valor do atributo
*Nota: Quando o novo valor do atributo é uma string (por exemplo: [email protected]), ele precisa ser incluído em cotações duplas.
Se quisermos usá -lo como um valor para uma variável, não precisamos usar cotações duplas. Por exemplo, se quisermos atribuir o valor da variável b à variável A, podemos entrar no JavaScript: alert (a = b).
No entanto, a maioria das tags na página não possui nomes, como:
<formulário action = send.php Método = post> <Tipo de entrada = Nome oculto = e -mail [email protected]> <Tipo de entrada = Nome do texto = nome> <entrada de entrada = submeter valor = submeter> </morm>
Não há nome de formulário neste código. Com base nas informações acima, você pode usar este comando:
javascript: alert (document.
Nesse caso, devemos contar e encontrar o número da sequência do formulário, e o seguinte é um exemplo:
<formulário action = send.php Método = post> <Tipo de entrada = Nome do texto = nome> <entrada de entrada = submeter valor = submeter> </form> <formulário action = send.php método = post> <entrada de entrada = Nome oculto = e -mail value = stramit> <somewhere.com> <input Type = Nome de texto <nome da entrada = <Tipo de entrada = Submeter Value = Enviar> </morm>
No código acima, vemos 3 formulários, mas estamos interessados apenas no segundo, então o número do formulário que queremos é 2. Não se esqueça de começar de 1, como 1, 2, 3, 4 ... enquanto JavaScript começa de 0, como 0, 1, 2, 3 ... então o número real de formulário é 1, não 2. Geralmente, é necessário subtrair o número encontrado por um. Usaremos este número de série para concluir nosso comando:
javascript: alert (document.forms [1] .mail.value = [email protected])
Dessa forma, você pode alterar a imagem ou link sem um nome e pode alterar os formulários para qualquer tipo de tag que desejar. Para fotos
javascript: alert (document.images [3] .src =#o url da imagem que você deseja#)
Para o link é
javascript: alert (document.links [0] .href =#o url que você deseja#)
Finalmente, podemos usar essa técnica para editar cookies. O comando a seguir é escrito por dr_amado no triviasecurity.net, e eu modifiquei um pouco para deixá -lo aparecer antes que o usuário o edite. Você só precisa copiá -los para a barra de endereço:
javascript: alert (janela.c = função a (n, v, nv) {c = document.cookie; c = c.substring (c.indexOf (n)+n.length, c.Length); c = c.substring (1, ((c.indexOf (;)>-1)? document.cookie = n+=+escape (NC); alerta ('O cookie é:'+document.cookie+''); alerta (c (prompt (o nome do cookie:,), prompt (altere este valor:,), prompt (com isso:,))))))// Se você deseja alterar manualmente seu cookie, pode usar o seguinte comando:
JavaScript: Alert (document.cookie)
Isso exibirá seu cookie atual, assumindo que o userID = 1, se você deseja alterá -lo para userID = 2, poderá usar o seguinte comando:
javascript: alert (document.cookie = userID = 2)
Finalmente, tenho que enfatizar que todas as mudanças estão apenas do lado do cliente! É como salvar uma página da web no seu PC e modificá -lo. Ainda assim, usando esse truque, você ainda pode enganar a página (como cookies) ou ignorar a verificação de segurança. Por exemplo, algumas páginas da Web detectam o local em que o usuário envia dados. Se você enviar dados de http://www.test.com/form.php para http://www.test.com/check.php, check.php poderá detectar se os dados vêm do formulário em http://www.test.com/form.php. Além disso, se você planeja inserir seu próprio código JavaScript na página, usando alguns desses truques, poderá alterar a imagem e deixá -la da mesma forma!
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.