Daniel Moreno. Novatec

Documentos relacionados
Desenvolvendo Websites com PHP

Criando Relatórios com PHP Pablo Dall Oglio

Ademir Cristiano Gabardo. Novatec

Jessey Bullock Jeff T. Parker

Desenvolvendo Websites com PHP

WordPress 3 Básico Stephanie Leary

Copyright 2008, 2013 da Novatec Editora Ltda.

Rodrigo de Barros Paes

Zend. Framework. Componentes Poderosos para PHP. Flávio Gomes da Silva Lisboa. Novatec

Josh Pauli Revisão técnica Scott White. Novatec

Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec

Benjamin Bengfort Jenny Kim

Ementa Oficial do. Curso Pentest: Técnicas de Invasão Básico

RELATÓRIOS PENTEST S

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Juliano Niederauer. Novatec

Ricardo R. Lecheta. Novatec

Pen-test de Aplicações Web: Técnicas e Ferramentas

Desenvolvimento de Grandes Aplicações Web

Christopher Duffy. Novatec

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

VULNERABILIDADES WEB v.2.2

IDENTIFICANDO VULNERABILIDADES EM LARGA ESCALA ATRAVÉS DE FALHAS DE DESENVOLVIMENTO

Python para web com Flask. #PythonAmazonas

Primeiros Passos com o Arduino

Introdução ao Burp Suite

Blender 3D jogos e animações interativas Allan Brito

Criando Relatórios com PHP

Laudo resumido do Pentest do sistema ALVO no ambiente da empresa CLIENTE ALVO

ÍNDICE. Introdução 19

Segurança em aplicações Web. Exemplos e Casos Práticos em

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Desenvolvimento e disponibilização de Conteúdos para a Internet

Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo

Ricardo Lino Olonca. Novatec

Ademir C. Gabardo. Novatec

Arduino Básico Michael McRoberts

Como melhorar a performance de websites.net

Sumário. Parte I JavaScript básica. 1 Introdução a JavaScript Estrutura léxica Tipos, valores e variáveis... 28

Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL):

XSS - CROSS-SITE SCRIPTING

Guia Mangá Circuitos Eletrônicos

Simon Holmes. Novatec

Novatec Editora Ltda

Criando Aplicações Gráficas com PHP

ADIANTI FRAMEWORK PARA PHP

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Introdução à Programação com Python

Novatec Editora Ltda. [2014].

Adrian Mouat. Novatec

Aprenda a Programar com Minecraft

Nota prévia... XXI 1. PHP, Apache Server e MySQL... 1

André Gugliotti. Novatec

Sumário. Capítulo 1 Revisão de PHP Capítulo 2 Melhorando o processamento de formulários... 46

PROJETO PEDAGÓGICO DE CURSOS

Desenvolvendo Websites com PHP

Guia Mangá Motores elétricos

Crie Seu Próprio Site

A Arte de Escrever Programas Legíveis

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

Daniel Moreno. Novatec

Excel Avançado. 2ª Edição. Antonio Fernando Cinto Wilson Moraes Góes. Novatec

Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

2ª edição. Daniel Adorno Gomes. Novatec

Google Analytics Justin Cutroni

Guia Prático Richard E. Silverman

Biblioteca de segurança para tratar as principais vulnerabilidades web

Jonathan Stark Brian Jepson

Daniel Moreno. Novatec

Allan Liska Geoffrey Stowe

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

Fonte: - Illustration by Gaich Muramatsu

Georgia Weidman. Novatec

Brandon Rhodes John Goerzen

Quem tem medo de XSS? William Costa

segurança em aplicações web

JQuery. A Biblioteca do Programador JavaScript. 3ª Edição Revisada e ampliada. Maurício Samy Silva. Novatec

Plano da Unidade Curricular

PHP Seguro Ernani Azevedo (PROCERGS DRE/ARS Unix)

Johnny Long Bill Gardner Justin Brown

Cross-Site Scripting. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

Ricardo Kléber M. Galvão. Novatec

BANCO DE DADOS PARA WEB

Rails 3 Básico Cloves Carneiro Jr. Rida Al Barazi

Transcrição:

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