Você está na página 1de 9

Daniel Moreno

Novatec
© Novatec Editora Ltda. 2017.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,
mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora.
Editor: Rubens Prates PY20170922
Revisão gramatical: Tássia Carvalho
Editoração eletrônica: Carolina Kuwabata
Capa: Carolina Kuwabata

ISBN: 978-85-7522-613-1
Histórico de impressões:
Outubro/2017 Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Email: novatec@novatec.com.br
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
Sumário

Agradecimentos......................................................................................................................15

Isenção de responsabilidade....................................................................................................16

Sobre o autor..........................................................................................................................17

Prefácio..................................................................................................................................18

Nota inicial.............................................................................................................................20

Parte I ■ Introdução..................................................................................... 22
Capítulo 1 ■ Introdução ao HTML.............................................................................................23
1.1 Introdução ao HTML......................................................................................... 23
1.2 Estrutura do documento HTML..........................................................................24
1.3 Abertura e fechamento de tags.............................................................................24
1.4 Principais tags.................................................................................................... 25
1.4.1 <!-- -->........................................................................................................26
1.4.2 <a>.............................................................................................................26
1.4.3 <b>.............................................................................................................26
1.4.4 <br>............................................................................................................27
1.4.5 <div>..........................................................................................................27
1.4.6 <form>.......................................................................................................28
1.4.7 <h1>, <h2>, <h3>, <h4>, <h5> e <h6>.......................................................30
1.4.8 <iframe>.....................................................................................................30
1.4.9 <img>.........................................................................................................30
1.4.10 <input>.....................................................................................................31
1.4.11 <meta>......................................................................................................33
1.4.12 <pre>........................................................................................................33
1.4.13 <script>....................................................................................................34

7
8 Pentest em Aplicações Web

1.4.14 <span>......................................................................................................34
1.4.15 <textarea>.................................................................................................34
1.5 Principais atributos das tags.................................................................................34
1.5.1 class............................................................................................................35
1.5.2 disabled......................................................................................................36
1.5.3 hidden.........................................................................................................36
1.5.4 id................................................................................................................36
1.5.5 maxlength...................................................................................................37
1.5.6 style............................................................................................................37

Capítulo 2 ■ Introdução ao CSS.................................................................................................38


2.1 Introdução ao CSS...............................................................................................38
2.1.1 Arquivo externo...........................................................................................38
2.1.2 Tag <style>.................................................................................................41
2.1.3 Atributo style..............................................................................................41
2.2 Principais propriedades do CSS...........................................................................42
2.2.1 background.................................................................................................42
2.2.2 height e width.............................................................................................42
2.2.3 position......................................................................................................42
2.2.4 z-index....................................................................................................... 44

Capítulo 3 ■ Introdução ao PHP................................................................................................45


3.1 Introdução ao PHP..............................................................................................45
3.2 Estrutura de um documento PHP....................................................................... 46
3.3 Comentários.......................................................................................................47
3.4 Finalização de instruções e quebra de linha..........................................................47
3.5 Mensagens de erros e a função phpinfo()..............................................................49
3.5.1 Mensagens de erros......................................................................................49
3.5.2 phpinfo().....................................................................................................50
3.6 Tipos de dados....................................................................................................50
3.6.1 String..........................................................................................................50
3.6.2 Numérico....................................................................................................55
3.6.3 Booleanos...................................................................................................56
3.6.4 Bits............................................................................................................. 60
3.6.5 Variáveis.................................................................................................... 60
3.6.6 Arrays.........................................................................................................63
3.7 Diferença entre atribuição e comparação..............................................................66
3.8 Associatividade e precedência das operações........................................................70
Sumário 9

3.9 Condicionais.......................................................................................................72
3.9.1 if.................................................................................................................73
3.9.2 if...else.........................................................................................................75
3.9.3 if...elseif...else..............................................................................................76
3.9.4 switch...case...default.................................................................................. 77
3.10 Laços de repetição.............................................................................................79
3.10.1 while........................................................................................................ 80
3.10.2 for.............................................................................................................81
3.10.3 foreach......................................................................................................82
3.11 Arquivos............................................................................................................83
3.12 Funções.............................................................................................................87
3.12.1 Funções e o escopo de variáveis................................................................. 90
3.12.2 Funções predefinidas.................................................................................94
3.13 Cookies e sessões............................................................................................112
3.13.1 Cookies...................................................................................................113
3.13.2 Sessões....................................................................................................120
3.14 Incluindo outros arquivos.................................................................................121
3.14.1 include.....................................................................................................121
3.14.2 include_once...........................................................................................122
3.14.3 require.....................................................................................................123
3.14.4 require_once............................................................................................123

Capítulo 4 ■ Introdução ao SQL..............................................................................................124


4.1 Introdução ao SQL............................................................................................124
4.1.1 Acessando o MySQL..................................................................................124
4.1.2 Criando a base de dados............................................................................125
4.1.3 Criando tabelas.........................................................................................126
4.1.4 Inserindo valores.......................................................................................128
4.1.5 Consultando valores..................................................................................128
4.1.6 Atualizando valores...................................................................................131
4.1.7 Removendo valores....................................................................................132
4.1.8 Tabela information_schema.......................................................................132
4.2 Operadores e funções do SQL............................................................................134
4.3 Integrando o MySQL ao PHP.............................................................................137
4.4 Criando manualmente uma página de phishing..................................................140
10 Pentest em Aplicações Web

Parte II ■ Pentest em aplicações web...........................................................145


Capítulo 5 ■ Introdução ao web pentest.................................................................................146
5.1 Introdução ao pentest web.................................................................................146

Capítulo 6 ■ Reconhecimento................................................................................................149
6.1 Google Hacking................................................................................................149
6.1.1 Operadores especiais.................................................................................151
6.1.2 Mineração de dados...................................................................................156
6.1.3 Consultas ofensivas...................................................................................158
6.2 Shodan.............................................................................................................163
6.3 Arquivo robots.txt.............................................................................................164
6.4 Ícone de sites.....................................................................................................165
6.5 Mensagens de erro.............................................................................................165
6.6 Clonagem de sites..............................................................................................166
6.6.1 wget..........................................................................................................166
6.6.2 httrack......................................................................................................168
6.7 Mapeamento da infraestrutura...........................................................................168

Capítulo 7 ■ Scanning............................................................................................................170
7.1 Whatweb...........................................................................................................170
7.2 Nmap................................................................................................................171
7.3 Nmap Scripting Engine (NSE)............................................................................173
7.3.1 Categoria auth...........................................................................................178
7.3.2 Categoria brute..........................................................................................184
7.3.3 Categoria default.......................................................................................189
7.3.4 Categoria discovery....................................................................................195
7.3.5 Categoria DoS...........................................................................................204
7.3.6 Categoria exploit.......................................................................................204
7.3.7 Categoria external......................................................................................206
7.3.8 Categoria fuzzer........................................................................................207
7.3.9 Categoria safe............................................................................................208
7.4 Dirb..................................................................................................................208
7.5 Dirbuster...........................................................................................................211
7.6 Burp Suite......................................................................................................... 217
7.6.1 Configurando o browser............................................................................218
7.6.2 Conexões HTTPS......................................................................................221
7.6.3 Capturando e modificando conexões via proxy...........................................222
7.6.4 Aba Target.................................................................................................227
Sumário 11

7.6.5 Aba Proxy.................................................................................................235


7.6.6 Aba Spider.................................................................................................243
7.6.7 Aba Scanner..............................................................................................250
7.6.8 Aba Intruder..............................................................................................250
7.6.9 Aba Repeater.............................................................................................265
7.6.10 Aba Sequencer.........................................................................................266
7.6.11 Aba Decoder............................................................................................268
7.6.12 Aba Comparer.........................................................................................268
7.6.13 Aba Extender........................................................................................... 274
7.6.14 Aba Project options..................................................................................276
7.6.15 Aba User options.....................................................................................279
7.7 Proxies alternativos............................................................................................279

Capítulo 8 ■ Exploração de falhas...........................................................................................281


8.1 A1 – Injeção......................................................................................................282
8.1.1 Injeção SQL...............................................................................................282
8.1.2 Injeção em formulários de e-mail................................................................ 311
8.1.3 Injeção de códigos (code injection)............................................................. 316
8.1.4 Injeção de comandos (command injection).................................................319
8.1.5 Injeção HTML...........................................................................................321
8.1.6 Injeção XPATH..........................................................................................324
8.1.7 Injeção XPATH às cegas (blind XPath injection).........................................326
8.1.8 Injeção SOAP............................................................................................328
8.1.9 Injeção LDAP............................................................................................329
8.1.10 Injeção em iframes...................................................................................330
8.2 A2 – Quebra de autenticação e gerenciamento de sessão.....................................330
8.2.1 Senhas esquecidas.....................................................................................332
8.2.2 Senhas em formulários..............................................................................333
8.2.3 Validação de logins (JavaScript).................................................................333
8.2.4 Ataques de força bruta...............................................................................335
8.2.5 Botões de sair (logout)...............................................................................352
8.2.6 Gerenciamento de cookies.........................................................................354
8.2.7 ID de sessão na URL.................................................................................359
8.2.8 Fixação de sessão (Session fixation)...........................................................362
8.3 A3 – Cross-site Scripting...................................................................................364
8.3.1 XSS refletido..............................................................................................365
8.3.2 XSS armazenado.......................................................................................375
8.3.3 XSS baseado em DOM..............................................................................376
8.3.4 Cross-site Tracing......................................................................................377
8.3.5 Frameworks de exploração XSS.................................................................377
12 Pentest em Aplicações Web

8.4 A4 – Quebra do controle de acesso.....................................................................382


8.4.1 Formulários inseguros para troca de senhas................................................383
8.4.2 Travessia de diretórios (Directory traversal)................................................385
8.4.3 Inclusão de arquivos locais (Local File Inclusion – LFI)...............................386
8.4.4 Inclusão de arquivos remotos (Remote File Inclusion – RFI)........................390
8.4.5 Server Side Request Forgery (SSRF)............................................................392
8.4.6 XML External Entity Attacks (XXE)..........................................................393
8.5 A5 – Configurações incorretas de segurança......................................................396
8.5.1 Conta anônima habilitada no servidor FTP................................................396
8.5.2 CVE-2015-3306........................................................................................399
8.5.3 Configurações incorretas do WebDAV.......................................................401
8.5.4 Escuta do tráfego HTTP (Man-in-the-Middle)............................................402
8.5.5 Escuta do tráfego HTTPS (Man-in-the-Middle)..........................................405
8.5.6 SSLStrip.................................................................................................... 410
8.5.7 SSLStrip2..................................................................................................412
8.5.8 Rogue DHCP e DHCP starvation...............................................................413
8.6 A6 – Exposição de dados sensíveis..................................................................... 416
8.6.1 Criptografia dos dados com base64............................................................ 416
8.7 A7 – Proteção insuficiente contra ataques........................................................... 417
8.8 A8 – Cross-site Request Forgery (CSRF)............................................................ 417
8.8.1 Token anti-CSRF.......................................................................................419
8.9 A9 – Utilização de componentes conhecidamente vulneráveis.............................423
8.9.1 CVE-2014-0160.........................................................................................424
8.9.2 CVE-2014-6271.........................................................................................427
8.9.3 Cifras SSL defasadas..................................................................................428
8.10 A10 – APIs não protegidas...............................................................................428
8.11 Vulnerabilidades adicionais..............................................................................428
8.11.1 Upload irrestrito de arquivos (Unrestricted file upload).............................428
8.11.2 Redirecionamentos e encaminhamentos inválidos.....................................432
8.11.3 Poluição de parâmetros (HTTP Parameter Pollution)................................432
8.11.4 CRLF Injection / HTTP Response Splitting..............................................433
8.11.5 Ataque ao cabeçalho Host (Host Header Attack)......................................433
8.11.6 Ataque ao método HTTP (HTTP method tampering)...............................438

Capítulo 9 ■ Ferramentas automatizadas...............................................................................439


9.1 SQLMap...........................................................................................................439
9.2 jSQL.................................................................................................................443
9.3 Commix........................................................................................................... 444
9.4 Nikto............................................................................................................... 444
Sumário 13

9.5 Vega..................................................................................................................445
9.6 Skipfish............................................................................................................ 446
9.7 Wapiti...............................................................................................................447
9.8 Acunetix...........................................................................................................448

Capítulo 10 ■ Escalonamento de privilégios............................................................................449

Capítulo 11 ■ Manutenção do acesso......................................................................................455

Capítulo 12 ■ Negação de serviço (Denial Of Service – DoS).....................................................462


12.1 CVE-2013-2028...............................................................................................462
12.2 CVE-2007-6750..............................................................................................463
12.3 HTTP Unbearable Load King (HULK)............................................................464

Capítulo 13 ■ Correções.........................................................................................................466
13.1 Injeção SQL.....................................................................................................467
13.2 Injeção em formulários de e-mail.....................................................................469
13.3 Injeção de comandos (command injection).......................................................469
13.4 Senhas esquecidas...........................................................................................470
13.5 Validação via JavaScript...................................................................................470
13.6 Cross-site scripting e injeção HTML................................................................470
13.7 Man-in-the-Middle..........................................................................................471
13.8 Exposição de dados sensíveis...........................................................................472
13.9 Remote File Inclusion (RFI), Local File Inclusion (LFI) e travessia de diretórios.473
13.10 Cross-site Request Forgery (CSRF)................................................................. 474
13.11 Clickjacking...................................................................................................475
13.12 Redirecionamento não validado.....................................................................476
13.13 RIPS..............................................................................................................476

Capítulo 14 ■ Considerações finais..........................................................................................478

Referências bibliográficas......................................................................................................480

Você também pode gostar