Upload
ricardophp
View
3.516
Download
0
Embed Size (px)
DESCRIPTION
Keynots da palestra sobre XSS
Citation preview
XSS quer dizer Cross Site Scripting, seu nome
originalmente era CSS e apesar de ser mais antigo que a
tecnologia CSS ele é muito menos popular, por isto quando
surgiu a CSS diversos técnicos de segurança começaram a
chamar a falha de XSS, graças ao XHTML, linguagem a
O que é XSS
chamar a falha de XSS, graças ao XHTML, linguagem a
qual geralmente se encontra a falha.
O XSS é uma das mais populares técnicas de “Injection”
(Em Português Injeção, de injetar, ou adicionar) que existe,
nada mais é do que a injeção de códigos extras, não
necessariamente danosos, em uma página de internet.
Freqüência de ocorrencia
27%
39%
9% 9%
16%
Cross Site Scripting Credentials Session
Prediction
SQL Injection Outros Controles
insuficientes
2008 Acumetix Ltd
http://www.acunetix.com/websitesecurity/cross-site-scripting.htm
1. Alteração do conteúdo do HTML da página;
2. Apresentação de mensagens (por alerts de
javascript) incorretas ao usuário final;
Problemas que acarreta
3. Roubo de sessão;
4. Roubo de audiencia;
5. Ataque de carga ao sistema servidor;
- Roubo de identidade;
- Acesso à informações restritas de grande
importancia;
- Ganhar acesso à conteúdo pago;
- Monitorar habito de navegação dos usuários;
Utilidades mais comuns de uso
- Monitorar habito de navegação dos usuários;
- Alterar funcionalidades básicas do browser;
- Defamação publica de um indivíduo ou empresa;
- Danificar aplicações Web;
- Proporcionar um DoS ou um DDoS.
Vídeo ilustrativo!
Diagrama de interoperabilidade
Cliente Servidor Cliente
Cenário 1
Cliente Servidor Banco Servidor Cliente
Cenário 2
Executa-se por meio de adição de código XHTML em campos comuns de formulários ou variáveis passadas por GET para funcionalidades como paginação e links, não necessáriamente apenas de texto.
Como executar
XSS comum Altera o conteúdo da página atual
XSRFEncaminha o usuário para outra página, ou abre páginas externas no site sendo visitado
Exemplo prático
- Filtro de palavras no código;
- Acompanhamento por IDS(Para evitar DoS e DDoS)
Como se prevenir
(Para evitar DoS e DDoS)
- Acompanhamento do Administrador do sistema;
$x = "<html>teste, <a href=\"teste\"
onclick=\"alert('ahhahaha');\">clique aqui</a>";
echo htmlspecialchars($x);
Funções: htmlspecialchars
// Resultado:
// "<html>teste, <a href="teste"
// onclick="alert('ahhahaha');">clique
// aqui</a>"
$x = "<html>teste, <a href=\"teste\"
onclick=\"alert('ahhahaha');\">clique aqui</a>";
echo str_replace("<", "<" $x);
Função: str_replace
// Resultado:
// "<html>teste, <a href="teste"
// onclick="alert('ahhahaha');">clique aqui</a>"
$x = "<html>teste, <a href=\"teste\"
onclick=\"alert('ahhahaha');\">clique aqui</a>";
echo strip_tags(
str_replace("String.fromCharCode", "", $x)
Funções: strip_tags + str_replace
str_replace("String.fromCharCode", "", $x)
);
// Resultado:
// "alert((0x0068));"
• www.programabrasil.orghttp://www.programabrasil.org/?p=83
• OWASPhttps://www.owasp.org/index.php/Cross-site-scripting
Referencias
https://www.owasp.org/index.php/Cross-site-scripting
https://www.owasp.org/index.php/Invoking_untrusted_mobile_code
• Wikipediahttp://en.wikipedia.org/wiki/Cross-site_scripting
• Acunetixhttp://www.acunetix.com/