Pentest em aplicações web
Descrição do livro
Aplicações web têm um histórico extenso de vulnerabilidades, que têm sido exploradas pelos hackers. A lista de ataques conhecidos é extensa, envolvendo Cross-site Scripting, SQL Injection, unrestricted file upload, Code Injection, Command Injecion, Remote/Local File Inclusion e Cross-site Request Forgery, somente para citar alguns.
Neste livro, você conhecerá as técnicas mais utilizadas pelos hackers, e poderá implementar mecanismos de proteção em suas aplicações web contra esses ataques.
Para facilitar, esta obra é dividida em três seções. A primeira tem como foco ensinar o básico sobre ambientes web, sendo o PHP a linguagem escolhida. Entendendo bem a primeira seção, a segunda reportará como os ataques são realizados. Nessa parte, ferramentas e técnicas manuais de ataques serão descritas a fim de se conhecer quais as possíveis vulnerabilidades do website. As técnicas de defesa serão descritas na terceira seção, para que o website seja disponibilizado on-line com o mínimo de segurança. No decorrer do livro, o leitor aprenderá:
Os princípios da programação web (HTML, CSS, PHP e SQL) e quais as funções do PHP com que se deve ter mais cuidado.
A realizar um pentest na própria aplicação seguindo as normas da OWASP e saber qual é o modus operandi de um ataque.
A analisar um código PHP e determinar se este está ou não vulnerável.
A aplicar correções e adotar as melhores práticas de segurança defensiva.
Sumário
Sumário
- Agradecimentos
- Isenção de responsabilidade
- Sobre o autor
- Prefácio
- Nota inicial
- Parte I Introdução
- Capítulo 1 ■ Introdução ao HTML
- 1.1 Introdução ao HTML
- 1.2 Estrutura do documento HTML
- 1.3 Abertura e fechamento de tags
- 1.4 Principais tags
- 1.4.1 <!-- -->
- 1.4.2 <a>
- 1.4.3 <b>
- 1.4.4 <br>
- 1.4.5 <div>
- 1.4.6 <form>
- 1.4.7 <h1>, <h2>, <h3>, <h4>, <h5> e <h6>
- 1.4.8 <iframe>
- 1.4.9 <img>
- 1.4.10 <input>
- 1.4.11 <meta>
- 1.4.12 <pre>
- 1.4.13 <script>
- 1.4.14 <span>
- 1.4.15 <textarea>
- 1.5 Principais atributos das tags
- 1.5.1 class
- 1.5.2 disabled
- 1.5.3 hidden
- 1.5.4 id
- 1.5.5 maxlength
- 1.5.6 style
- Capítulo 2 ■ Introdução ao CSS
- 2.1 Introdução ao CSS
- 2.1.1 Arquivo externo
- 2.1.2 Tag <style>
- 2.1.3 Atributo style
- 2.2 Principais propriedades do CSS
- 2.2.1 background
- 2.2.2 height e width
- 2.2.3 position
- 2.2.4 z-index
- Capítulo 3 ■ Introdução ao PHP
- 3.1 Introdução ao PHP
- 3.2 Estrutura de um documento PHP
- 3.3 Comentários
- 3.4 Finalização de instruções e quebra de linha
- 3.5 Mensagens de erros e a função phpinfo()
- 3.5.1 Mensagens de erros
- 3.5.2 phpinfo()
- 3.6 Tipos de dados
- 3.6.1 String
- 3.6.2 Numérico
- 3.6.3 Booleanos
- 3.6.4 Bits
- 3.6.5 Variáveis
- 3.6.6 Arrays
- 3.7 Diferença entre atribuição e comparação
- 3.8 Associatividade e precedência das operações
- 3.9 Condicionais
- 3.9.1 if
- 3.9.2 if...else
- 3.9.3 if...elseif...else
- 3.9.4 switch...case...default
- 3.10 Laços de repetição
- 3.10.1 while
- 3.10.2 for
- 3.10.3 foreach
- 3.11 Arquivos
- 3.12 Funções
- 3.12.1 Funções e o escopo de variáveis
- 3.12.2 Funções predefinidas
- 3.13 Cookies e sessões
- 3.13.1 Cookies
- 3.13.2 Sessões
- 3.14 Incluindo outros arquivos
- 3.14.1 include
- 3.14.2 include_once
- 3.14.3 require
- 3.14.4 require_once
- Capítulo 4 ■ Introdução ao SQL
- 4.1 Introdução ao SQL
- 4.1.1 Acessando o MySQL
- 4.1.2 Criando a base de dados
- 4.1.3 Criando tabelas
- 4.1.4 Inserindo valores
- 4.1.5 Consultando valores
- 4.1.6 Atualizando valores
- 4.1.7 Removendo valores
- 4.1.8 Tabela information_schema
- 4.2 Operadores e funções do SQL
- 4.3 Integrando o MySQL ao PHP
- 4.4 Criando manualmente uma página de phishing
- Parte II Pentest em aplicações web
- Capítulo 5 ■ Introdução ao web pentest
- 5.1 Introdução ao pentest web
- Capítulo 6 ■ Reconhecimento
- 6.1 Google Hacking
- 6.1.1 Operadores especiais
- 6.1.2 Mineração de dados
- 6.1.3 Consultas ofensivas
- 6.2 Shodan
- 6.3 Arquivo robots txt
- 6.4 Ícone de sites
- 6.5 Mensagens de erro
- 6.6 Clonagem de sites
- 6.6.1 wget
- 6.6.2 httrack
- 6.7 Mapeamento da infraestrutura
- Capítulo 7 ■ Scanning
- 7.1 Whatweb
- 7.2 Nmap
- 7.3 Nmap Scripting Engine (NSE)
- 7.3.1 Categoria auth
- 7.3.2 Categoria brute
- 7.3.3 Categoria default
- 7.3.4 Categoria discovery
- 7.3.5 Categoria DoS
- 7.3.6 Categoria exploit
- 7.3.7 Categoria external
- 7.3.8 Categoria fuzzer
- 7.3.9 Categoria safe
- 7.4 Dirb
- 7.5 Dirbuster
- 7.6 Burp Suite
- 7.6.1 Configurando o browser
- 7.6.2 Conexões HTTPS
- 7.6.3 Capturando e modificando conexões via proxy
- 7.6.4 Aba Target
- 7.6.5 Aba Proxy
- 7.6.6 Aba Spider
- 7.6.7 Aba Scanner
- 7.6.8 Aba Intruder
- 7.6.9 Aba Repeater
- 7.6.10 Aba Sequencer
- 7.6.11 Aba Decoder
- 7.6.12 Aba Comparer
- 7.6.13 Aba Extender
- 7.6.14 Aba Project options
- 7.6.15 Aba User options
- 7.7 Proxies alternativos
- Capítulo 8 ■ Exploração de falhas
- 8.1 A1 – Injeção
- 8.1.1 Injeção SQL
- 8.1.2 Injeção em formulários de e-mail
- 8.1.3 Injeção de códigos (code injection)
- 8.1.4 Injeção de comandos (command injection)
- 8.1.5 Injeção HTML
- 8.1.6 Injeção XPATH
- 8.1.7 Injeção XPATH às cegas (blind XPath injection)
- 8.1.8 Injeção SOAP
- 8.1.9 Injeção LDAP
- 8.1.10 Injeção em iframes
- 8.2 A2 – Quebra de autenticação e gerenciamento de sessão
- 8.2.1 Senhas esquecidas
- 8.2.2 Senhas em formulários
- 8.2.3 Validação de logins (JavaScript)
- 8.2.4 Ataques de força bruta
- 8.2.5 Botões de sair (logout)
- 8.2.6 Gerenciamento de cookies
- 8.2.7 ID de sessão na URL
- 8.2.8 Fixação de sessão (Session fixation)
- 8.3 A3 – Cross-site Scripting
- 8.3.1 XSS refletido
- 8.3.2 XSS armazenado
- 8.3.3 XSS baseado em DOM
- 8.3.4 Cross-site Tracing
- 8.3.5 Frameworks de exploração XSS
- 8.4 A4 – Quebra do controle de acesso
- 8.4.1 Formulários inseguros para troca de senhas
- 8.4.2 Travessia de diretórios (Directory traversal)
- 8.4.3 Inclusão de arquivos locais (Local File Inclusion – LFI)
- 8.4.4 Inclusão de arquivos remotos (Remote File Inclusion – RFI)
- 8.4.5 Server Side Request Forgery (SSRF)
- 8.4.6 XML External Entity Attacks (XXE)
- 8.5 A5 – Configurações incorretas de segurança
- 8.5.1 Conta anônima habilitada no servidor FTP
- 8.5.2 CVE-2015-3306
- 8.5.3 Configurações incorretas do WebDAV
- 8.5.4 Escuta do tráfego HTTP (Man-in-the-Middle)
- 8.5.5 Escuta do tráfego HTTPS (Man-in-the-Middle)
- 8.5.6 SSLStrip
- 8.5.7 SSLStrip2
- 8.5.8 Rogue DHCP e DHCP starvation
- 8.6 A6 – Exposição de dados sensíveis
- 8.6.1 Criptografia dos dados com base64
- 8.7 A7 – Proteção insuficiente contra ataques
- 8.8 A8 – Cross-site Request Forgery (CSRF)
- 8.8.1 Token anti-CSRF
- 8.9 A9 – Utilização de componentes conhecidamente vulneráveis
- 8.9.1 CVE-2014-0160
- 8.9.2 CVE-2014-6271
- 8.9.3 Cifras SSL defasadas
- 8.10 A10 – APIs não protegidas
- 8.11 Vulnerabilidades adicionais
- 8.11.1 Upload irrestrito de arquivos (Unrestricted file upload)
- 8.11.2 Redirecionamentos e encaminhamentos inválidos
- 8.11.3 Poluição de parâmetros (HTTP Parameter Pollution)
- 8.11.4 CRLF Injection / HTTP Response Splitting
- 8.11.5 Ataque ao cabeçalho Host (Host Header Attack)
- 8.11.6 Ataque ao método HTTP (HTTP method tampering)
- Capítulo 9 ■ Ferramentas automatizadas
- 9.1 SQLMap
- 9.2 jSQL
- 9.3 Commix
- 9.4 Nikto
- 9.5 Vega
- 9.6 Skipfish
- 9.7 Wapiti
- 9.8 Acunetix
- Capítulo 10 ■ Escalonamento de privilégios
- Capítulo 11 ■ Manutenção do acesso
- Capítulo 12 ■ Negação de serviço (Denial Of Service – DoS)
- 12.1 CVE-2013-2028
- 12.2 CVE-2007-6750
- 12.3 HTTP Unbearable Load King (HULK)
- Capítulo 13 ■ Correções
- 13.1 Injeção SQL
- 13.2 Injeção em formulários de e-mail
- 13.3 Injeção de comandos (command injection)
- 13.4 Senhas esquecidas
- 13.5 Validação via JavaScript
- 13.6 Cross-site scripting e injeção HTML
- 13.7 Man-in-the-Middle
- 13.8 Exposição de dados sensíveis
- 13.10 Cross-site Request Forgery (CSRF)
- 13.11 Clickjacking
- 13.12 Redirecionamento não validado
- 13.13 RIPS
- Capítulo 14 ■ Considerações finais
- Referências bibliográficas
Sobre o autor
Daniel Moreno é autor de vários livros, todos com ampla aceitação na comunidade de TI. Entusiasta em Linux, Pentest e Python, também escreve e ministra treinamentos e palestras sobre o assunto. Em seu GitHub (https://github.com/danielhnmoreno) sempre está divulgando projetos com o intuito de ajudar a comunidade no desenvolvimento e aperfeiçoamento… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
Lucas G C da S
Material muito bom, e de fácil absorção. Recomendo
José E R
Um bom livro, que poderia ser atualizado em uma nova edição com as mais novas técnicas utilizadas.
Taffarel F
Excelente livro, fácil leitura e compreensão. O livro ensina de forma teórica e prática sobre as principais vulnerabilidades web, como pode ser realizado um ataque e sua defesa! Uma abordagem geral mas superficial!
Andre T
Muito bom! Merecia 10 estrelas.






