Você está na página 1de 17

Web & Mobile Exploitation

Aula 4
09/03/2022
Agenda
Check Point 1
"Previously on our class…"
SDLC
SAST vs DAST
Noções de Code Review
Desafio prático
Check Point 1
Dúvidas?
Feedbacks?
"Previously on our class…"

😎 Recordar é viver… 💡
O que vimos nessa disciplina nas últimas três aulas? 🤔
"Previously on our class…"

O que vimos nessa disciplina nas últimas três aulas? 🤔


1. Vulnerabilidades Web: Open Redirect e XSS (superficialmente) ✅
2. Networking: o que ocorre quando digitamos uma URL no browser? ✅
3. Coding: exemplos de código vulnerável e corrigido em PHP ✅
4. Ferramentas: curl e um pouco de bash ✅
5. Protocolo HTTP: diferentes versões, métodos, status codes, HTTP vs HTTPS e parsing de URL ✅
6. Dados Confiáveis x Dados Não-Confiáveis ✅
7. Interceptação e modificação de requisições HTTP ✅
8. Básico do Burp Suite ✅
"Previously on our class…"

O que foi pedido para cada um fazer por conta própria? 🤔🙄


"Previously on our class…"

O que foi pedido para cada um fazer por conta própria? 🤔🙄


1. Ter o seu "lab" pronto para acompanhar as aulas (recomendei o Kali pela facilidade mas qualquer SO com um
terminal serve)
2. Pesquisar se existiam outras formas de redirecionar o usuário no nosso exemplo corrigido do Open Redirect 🤔
3. Criar sua na HackerOne
4. Baixar seu livro gratuito Web Hacking 101 (a partir da sua conta da HackerOne), que será utilizado na disciplina
5. Criar sua na PortSwigger
6. Ler sobre ataques aos root DNS servers em 2002
7. Ver a talk sobre CTF no Mente Binária
"Previously on our class…"

O que foi pedido para cada um fazer por conta própria? 🤔🙄


8. Ver a talk da DEF CON do Chris Riley sobre defesa com status codes para atrasar scanners e sk1dd13s
9. Ler sobre SSL
10. Ler sobre certificados SSL
11. Ler sobre SSL Handshake
12. Ver duas talks da Kringle Con sobre HTTP/2
13. Tentar decifrar seu tráfego de acesso a algum site que suporte HTTP/2 após ver essas talks
14. Fazer a pesquisa do Check Point com sua dupla ou trio
Reflita
"8 assuntos" expostos em sala vs "14 coisas" para vocês buscarem fora da aula 🤓
Quantos itens "extra-classe" você foi atrás por conta própria? 👀
Qual é a sua real expectativa com este curso?
O que e quanto você quer aprender?
O que tem feito para conseguir o que está buscando no curso?
SDLC
SDLC - Software Development Life Cycle
É um processo criado para permitir que as empresas criem software de alta qualidade, a baixo custo e no
menor tempo possível.
Geralmente este processo é dividido nas etapas a seguir:
Planejamento: levantamento de requisitos, criar a agenda do projeto, estimar recursos, contratar equipe,
definir entregáves, o que será criado e o que NÃO será criado.
Codificação: desenvolvimento do sistema. Nesta fase também pode ocorrer Análise Estática de Código.
Building: composição do software utilizando o código criado.
Testes: avaliação do software (o sistema faz o que é esperado? ele atende os requisitos que levantamos?)
Release: distribuir diferentes versões do software para diferentes ambientes (desenvolvimento,
homologação, pré-produção…)
Deploy (Implantação): nesta fase o software finalmente vai para produção
Operação / Monitoração: utilização do software final, monitoração de performance e experiência do
usuário. 👈🏾 Aqui é onde muitos pentests ocorrem!
SDLC
Quanto mais tarde no processo de desenvolvimento a falha for encontrada mais caro 💰 fica!
Leia Mais
SAST vs DAST
AST = Application Security Testing
S = Static
D = Dynamic
SAST implica conhecimento do código-fonte, porém não requer a aplicação em execução
DAST pede uma aplicação em execução
SAST vs DAST

Diferenças entre SAST e DAST


Noções de Code Review

Leia atentamente o trecho de código a seguir.

1 <?php
2 $pasta = $_GET['src'];
3 $nome = $_GET['nome'];
4 $extencao = pathinfo($_FILES['imagemself']['name'], PATHINFO_EXTENSION);
5 $destino = $pasta."DOC".md5($nome).".".$extencao;
6 $arquivo_tmp = $_FILES['imagemself']['tmp_name'];
7 move_uploaded_file($arquivo_tmp, $destino);
8 ?>
Noções de Code Review

Analise o código e responda:

1. Qual é a função deste código e em qual linguagem está escrito?


2. Ele é seguro? Caso não seja, qual o nome da falha apresentada?
3. Explique com suas palavras o que torna o código inseguro.
4. Explique com suas palavras como podemos explorar a falha apresentada.
5. Crie um pequeno script para explorar esta falha.
Desafio Prático
Na próxima aula faremos um desafio ao vivo e mais voltado a web, mas até lá quero ver quem vai resolver
esse… 😈
`nc numb3rs.hopto.org 8012`
Dúvidas?
Nos vemos IRL na próxima aula! 👊🏾😎

Você também pode gostar