Pentest em aplicações web

Pentest em aplicações web
× Pentest em aplicações web

Pentest em aplicações web

Autor:

ISBN impresso: 978-85-7522-613-1
ISBN ebook: 978-85-7522-614-8
Ano: 2017
Páginas: 480
Preço: R$ 119,00

7 opiniões | Opine sobre este livro

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.

Ver menos ▲

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
Ver sumário completo ▼

Sobre o autor

Daniel Moreno

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 ▶

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.

Ver todas ▼

Títulos relacionados