Olá é bem-vindos de volta ao treinamento na Pacific Security de cy segurança é meu nome é Rafael eu sou um dos analistas do time e na aula de hoje a gente vai falar um pouquinho sobre aplicações web e pra paa dessa aula a gente vai começar como introdução sobre o tema que que aplicações web como que elas funcionam e em seguida a gente vai falar sobre o ovas top 10 e no próximo passo sobre como que a gente consegue fazer os P testes e aplicações web e por fim uma introdução sobre o burp sutch que é uma aplicação utilizada para fazer os testes web e uma parte prática sobre burp suite Então primeiramente aplicações web elas são muito utilizadas atualmente elas estão baseadas no modelo cliente servidor o usuário então ele tem um navegador web vai ser o cliente ele vai utilizar esse navegador web para poder enviar uma requisição pro servidor da aplicação o servidor ele vai pegar essa resposta vai pegar essa requisição processar ela e formular uma resposta que vai ser retornado para navegador web tudo isso utilizando protocolo http o navegador web então ele vai receber essa resposta do Servidor e vai processar ela também novamente ou renderizar ela direto no caso por exemplo uma resposta HTML ou utilizar ela no seu código JavaScript alguma coisa assim sim para poder no final exibir algum resultado para usuário que faça sentido e permita ele utilizar a aplicação E então no final fluxo no aplicação web É esse usuário utiliza navegador navegador Manda uma requisição pro servidor servidor retorna uma resposta para pro navegador e introduzindo então o ovas é ovas Open worldwide application Security Project é uma Fundação simp ativos e o seu objetivo é distribuir e conteúdos e para primorar a segurança do softwares como por exemplo ferramentas guias documentação ou qualquer outra coisa que no final vai ajudar a melhorar a segurança do softwares e no caso de aplicações web aov pela referência do mercado e com base nela a gente utiliza a gente utiliza muita parte dos conteúdos dele para poder a nossa metodologia de testes e aplicação e uma das principais coisas que o VASP faz é o top 10 ele é uma lista das desabilidades mais comuns que foram encontradas e reportadas para eles tanto por empresas quanto por indivíduos da comunidade e eles criam esse lista então com base Ness vulnerabilidades para poder tentar auxiliar as organizações aí tentarem identificar e mitigar os riscos mais comuns que T nos seus sistemas queam que possam existir nos seus sistemas e a última vez que eles lançaram essa lista foi em 2021 eh estão planejando lançar uma nova versão esse ano 2025 eh em 2021 foram essas as 10 vulnerabilidades presentes na lista foram as 10 mais presentes então no durante os o tempo período de análise deles 2021 eh vocês vão aprender um pouco mais sobre alguma delas nas aulas mais para frente e até mesmo fazer alguns exercícios explorando alguma dessas vulnerabilidades eh E como que funciona então o teste de aplicações web em si é a VASP novamente ela tem um guia n we Security testing guide wstg que é um guia dele sobre como que você realiza uma teste na aplicação web e corrige as falhas que você encontrou é um Gu é bem extenso que tem várias categorias de tentar abrangir o máximo de testes possíveis para sistemas webs e se objetivo é auxiliar tanto a identificar quanto corrigir as habilidades esses tópicos na tela são os tópicos principais depois cada um tópico desse D trinche em tópicos menores e normalmente cada um com uma descrição muito grande e explicação de como que você faz como que você corrige como que a realidade funciona e como que então a gente faz um ptest web ou como que um ptest web pode ser feito eh são várias etapas necessárias para fazer um Pain test web por exemplo introdução pampeo busca por vulnerabilidades exploração de vulnerabilidades e por fim uma documentação sobre o que que você encontrou eh Só que focando mais pra parte prática de busca e exploração de BR habilidades eh a gente normalmente utiliza um prox http ou um aplicativo que contém um prox http e o que que esse prox faz ele fica entre o navegador e o servidor da aplicação e Ou seja a gente configura pro navegador web esse proxy ao invés do navegador enviar uma requisição direto pro servidor ele envia envia requisição pro nosso proxy aí o nosso prox ele vai permitir que a gente visualize a requisição que foi feita pelo navegador e até Edite ela caso a gente queira em seguida o prox vai enviar essa requisição ou modificada ou original pro servidor o servidor normalmente vai processar essa requisição enviar uma resposta pro nosso prox aí o prox vai normalmente te permitir visualizar E caso você queira editar essa resposta do Servidor depois ele vai voltar essa resposta pro navegador e esse prox é muito inútil Porque a partir dele a gente consegue né visualizar tanto quanto editar todo a comunicação que tá sendo feita entre o navegador e o servidor web é o que facilita muita gente identificar falha de segurança como por exemplo validação inadequada de entradas erro de autenticação ou erro de autorização eh um dos proxis mais comuns ou mais utilizados Ultimamente é o Bup Suit ela é uma ferramenta que permite exatamente fazer isso interceptar modificar e visualizar as equações http eh o que permite a gente a fazer esses testes mais facente só que além de proxy o bsite possui várias outras ferramentas embutidas e permite a gente por exemplo repetir uma requisição que já foi feita anteriormente eh realizar várias requisições em massa para por exemplo fazer ataque de brute Force ou até mesmo modificar as aquisições ou o comportamento do burp suite da forma como que a gente queira por meio de uma própria api que ele tem de extens habilidade consegue fazer extensões para ele ou utilizar extensões feitas pela comunidade Para poder melhorar o seu comportamento eh E além disso O BP Suit ele também possui Scans tanto eh passivos quanto esans ativos que eles vão tanto analisar a comunicação que você fez com a aplicação ao longo dos seus testes em busca de vulnerabilidades que ele encontra nessas requisições como por exemplo a ausência de algum header e alguma comunicação insegura algum dado sensível sendo transmitido ou quanto no caso de uma um estivo ele vai realizar requisições para servidor buscando também encontrar algumas an habilidades que você possa não ter visualizado ao longo do seu teste eh mas antes da gente continuar um pouco sobre como que funciona o burp utilizá-lo a gente precisa saber como que funciona o protocolo http já que a web é baseada nele e o protocolo http hypertext transfer protocol ele ele define determina como que as mensagens na web vão ser transmitidas e formatadas e ele que indica também pro servidor ou pro navegador o que que ele deve fazer com essas respostas é no caso da requisição requisição e tem a resposta a requisição ela possui três Campos principais que é o método o header e o body é o método ele indica Qual ação que vai ser realizada Qual ação que que o navegador tá pedindo para que o servidor realize e principais são post get out mas também tem outras várias como delete eh os rens ele carreg alguma informação adicional com por exemplo qual o tipo de conteúdo da requisição que você está enviando eh algum redder de autenticação por exemplo para poder identificar o usuário que você está utilizando para poder fazer essa comunicação informações adicionais do cliente como por exemplo qual o navegador que você está utilizando eh e por fim ele possui a reção possui um body que o corpo da requisição que é opcional eh sente alguns métodos costumam utilizar o corpo como por exemplo pro post ou é esse corpo ele possui alguns dados que você tá transmitindo do cliente pro servidor como por exemplo eh dados de login eh en ví de algum formulário que você esteja enviando algum arquivo que você queira fazer upload enviar paraa aplicação ou coisas do tipo eh então uma requisição aa eh a parentes ela é mais ou menos desse estilo eh a primeira linha essa post indica o método que a gente tá utilizando no caso é o método post Ela também tem essa barra p barra v1 bar login que é qual a URL ou seja qual o caminho dentro daquele servidor que a gente tá querendo acessar e por último http1. 1 que é simplesmente a versão do protocolo a gente tá a versão 1. 1 do protocolo http eh as próximas quatro linhas são headers eh cada header ele tem tanto o nome do header quanto seu valor no caso primiro rer é o host e o seu valor é pacific.
com vários desses headers eles TM já um comportamento padrão pré-definido como por exemplo host ele determina Qual o host qual servidor que você tá querendo comunicar porque o mesmo servidor físico pode ter vários servidores web rodando em cima dele e mas a aplicação também pode utilizar alguns headers próprios dela que eles mesmos definiram que eles mesm izam para motivos próprios que não são RS comuns que você vai encontrar Outras aplicações realmente vai depender do próprio desenvolvedor e por fim a gente tem o corpo da requisição são essas linhas restantes E no caso dessa requisição a gente tá enviando um corpo no formato Jon e nesse caso específico a gente tá enviando um usuário e uma senha do usuário para poder tentar fazer o login nesse usuário eh já no caso da resposta que o servidor retorna pro cliente novador web ele tem três Campos principais é o código de status os Heads e o body é o código de status ele indica qual que foi o stat ou seja qual que foi o eh o que que aconteceu com essa requisição ou por exemplo será deu sucesso será deu erro o por que el deu erro foi porque que o usuá foi porque o usuário não tem autorização foi porque o usuário enviou uma requisição mal formulada foi porque o usuário tá tentando acessar um recurso que não existe e ou vários outros códigos de erro existe uma lista padrão dos códigos eh definidos para serem utilizados e o que que eles significam eh a resposta também vai ter reders assim como a requisição e esses reders normalmente vai ter alguma informação adicional com por exemplo algum dado sobre o servidor Qual o nome do Servidor que você tá utilizando qual software que ele tá rodando opcionalmente eh qual a data do Servidor ou pode conter por exemplo algum dado de autenticação pro cliente começar a usar pode conter os cooks que o cliente vai atualizar ou algumas outras informações também que vai depender do caso da aplicação específica e por fim e principal na resposta vai ter um B que também é opcional que vai ter algum dado pelo servidor como por exemplo um arquivo eh resposta de um alguma tentativa de autenticação resposta de alguma outra uma mensagem que foi trocada em cliente o servidor ou qualquer outra coisa também que novamente vai depender do caso da aplicação em si específica e esse é um exemplo também de uma resposta de uma aplicação na primeira linha a gente tem novamente htp bar 1. 1 que é o protocolo que tá sendo utilizado depois a gente tem um código de status que é o 200 e a descrição desse código que é OK sign que a requisição foi processada e que deu tudo certo não teve nenhum erro durante eh o processamento dessa requisição pelo servidor eh em seguida a gente tem headers nesse caso são quatro headers que normalmente identifica alguns eh dados adicionais como por exemplo qual o tipo de conteúdo que o servidor tá retornando paraa aplicação Qual o tamanho desse conteúdo e algumas coisas adicionais e as últimas quatro linhas cinco linhas é o corpo da requisição que identifica o que que aconteceu com essa requisição nesse caso por exemplo requisição antes de login deu sucesso mensagem foi login sucedido e ela retornou um token de login token jwt que o cliente poderia usar por exemplo nas próximas requisições para poder identificar pro servidor quem que ele é que ele já fez o login que ele é aquele usuário que e fez o login com sucesso e no próximo passo agora a gente vai fazer a parte mais prática de apresentação de como que o burp suite funciona e como que ele pode ser utilizado para fazer os Pain tests web e bem-vindos à parte prática da aula eh primeiramente vocês vão precisar instalar o burp Switch a gente tá utilizando a versão community para essas aulas eh que é versão de graça também tem a versão Pag no bu Switch que a gente utiliza para os nossos testes mas para essas aulas pro treinamento ela não é necessária eh Após instalar o Bup sutch community Edition vocês vão abrir ele vai ter uma tela parecida como essa eh como vocês podem ver o tem várias Abas aqui em cima como a gente tá na aba da dashboard atualmente e a gente vai explicar um pouquinho sobre cada uma que a para que que serve a princip as principais Abas a gente não vai passar por todas umas Abas que a gente não utiliza muito mas gente passar pelas principais e essa primeira aba de dashboard ela basicamente dá um resumo do que que ele encontrou até agora n tarefas passivas é aqui na esquerda ele tem as tarefas que ele tá fazendo atualmente por padrão ele tem essa tarefa de pacif crw pelo proxy e ou seja ele tá analisando o tráfego que ele tá recebendo pelo proxy dele e tá adicionando as coisas que ele encontrou as urls os itens e no mapa do site que você vai poder depois ver nessa aba de target como a gente não sesson nada elas estão em branco e nessa primeira aba de test b a a gente também pode criar uma nova tarefa E no caso do sut a gente consegue criar uma tarefa de Scan ativo ou passivo que ele vai ficar ou bem das aquisições que a gente tá fazendo no proxy ou vai ele vai criar umas requisições para poder fazer e buscar vulnerabilidades eh no caso do bu Suit community ele não tem essa funcionalidade então a gente apenas tem os nossos os nossos testes manuais para poder fazer com ele e o target a gente vai ver um pouquinho mais paraa frente quando a gente já tiver acessado uma aplicação é a próxima aba de proxy essa aba aqui realmente é o proxy que o b suite cria se a gente for nessa parte aqui de pro setting proxy settings e tem outras várias outras Aras com de reconfiguração Mas a gente pode ver que ele criou por padrão esse proxy listener ou seja uma Interface para poder escutar um prox e no local host na porta 8080 e ou seja qualquer aplicação que chegar no no local host nessa porta 8080 o BB suwit vai interceptar depois vai enviar paraa aplicação de destino original e tem várias outras configurações de prox que a gente pode fazer eh para poder por exemplo modificar alguma e alguma informação na requisição ou na resposta de forma automática e algumas configurações mais gerais do proxy também que a gente pode mexer e a gente pode importar casos tls a gente pode quar regr de websocket tem muitas configurações que podem ser feitas e aqui realmente vai depender do caso de teste algumas vezes a gente já teve alguns problemas com as configurações padrão do burp a gente teve que fazer alguma modificação e para poder funcionar de forma mais adequada no nosso teste ou realmente algumas configurações que a gente vai precisar para poder ou ser útil no caso do teste por exemplo poder modificar algum header de resposta alum é dentro de requisição de forma automática pra gente não precisar ficar manualmente pegando requisição e alterando eh então o é o principal que o burp oferece é o proxy e junto com proxy ele tem o próprio navegador baseado em Chromium a gente já pode criar clicar aqui para poder abrir o navegador e a gente não precisa usar o navegador do burp a gente pode usar o nosso próprio navegador mas o útimo navegador do burp que ele já vem com o prox configurado por padrão não sei se D para visualizar aqui mas ele já vem com o prox do bu configurado por padrão então se eu acessar uma página Web por exemplo google. com ele já vai passar pelo prox do burp a gente pode ver aqui proxy DTP History a gente pode ver as requisições que foram feitas quando eu abrir aquela página web e a gente consegue ver então tanto a requisição aqui na parte da esquerda como request tanto quanto a resposta do Servidor na parte da direita que response E se a gente quiser interceptar e esperar a gente visualizar e poder modificar Por exemplo essa requisição antes chegar no servidor a gente pode vir aqui na parte de intercept ligar o intercept se a gente fizer uma requisição novamente como por exemplo Vou atualizar a página vocês podem ver que ela não vai recarregar ela vai ficar como carregando porque ela tá esperando a requisição realmente chegar no servidor E retornar para o navegador e no Bup a gente pode ver que a requisição el tá aqui parada a gente tem três requisições e principal que a gente quer no caso essa get que é quando a gente tá abrindo a página e a gente consegue visualizar aqui o que que táa sendo mandado nessa regão a gente consegue alterar por exemplo se eu quiser alterar esse Cook Posso alterar aqui aí Tá ok eu não quero mais alterar também por exemplo Tá ok Não quero maisar a requisição a gente pode vir aqui em forward e ela vai ser enviada pro servidor e vai receber resposta Ou a gente pode dar um drop nessa requisição que ela vai ser cancelada E no caso na página não vai dar erro porque ela não conseguiu enviar a requisição gente pode fazer interceptar pedir para interceptar a resposta dessa requisição específica que é o que a gente vai fazer a vai pedir para interceptar a resposta vai dar um forward a gente pode ver aqui ele recebeu a resposta é Dire response dessa requisição get pro google.