
Um workshop passo a passo para explorar várias vulnerabilidades em aplicações Node.js e Java
Neste workshop passo a passo, você aprenderá como explorar várias vulnerabilidades reais existentes em versões vulneráveis de pacotes em uma aplicação Node.js e Java.
Você pode fazer este workshop de 2 maneiras diferentes
OU
Este workshop guiará você pela instalação e exploração de várias aplicações intencionalmente vulneráveis. As aplicações usarão pacotes reais com vulnerabilidades conhecidas, incluindo:
Essas explorações existem em várias aplicações, a maioria das quais você precisará instalar localmente ou em uma instância em nuvem. As instruções abaixo guiarão você pelas instalações locais, mas fique à vontade para testá-las também em instâncias remotas em nuvem.
Para cada seção de vulnerabilidade neste workshop, você receberá informações sobre a vulnerabilidade, bem como o pacote em que ela existe. Encorajamos você a tentar hackear a aplicação por tentativa e erro sem ler nenhuma dica primeiro. Tente pensar em como você pode enganar a sanitização da aplicação e entre na mente de um hacker. As dicas estão lá para quando você ficar preso; leia-as em ordem conforme precisar de ajuda. Se você conseguir completar o hack sem dicas, ótimo! No entanto, pode ser bom ler as dicas depois para garantir que você invadiu da mesma forma que nós! Além disso, pode haver pequenas dicas para aprender também.
Dependendo da sua escolha anterior, selecione o manual de instalação apropriado
No seu navegador de preferência, navegue para http://localhost:3001 e você verá a seguinte página.

Passe alguns minutos brincando com o site e, em particular, crie alguns itens de tarefa usando texto comum “Comprar Leite” e também usando markdown “Comprar **muito** leite”. Navegue também para a página "Sobre" bastante modesta, linkada no final da página inicial. Deleite-se com o CSS-foo usado para criar esta página "Sobre". Nota: PRs enviados que tornem esta página mais bonita não serão mesclados ;o)

Primeiramente, vamos olhar para isso do lado azul (defensivo). Faça um fork da aplicação goof para sua própria conta do GitHub. A aplicação pode ser encontrada no GitHub aqui: https://github.com/snyk/goof. Precisamos escanear nossa aplicação para entender as dependências diretas e indiretas que existem na aplicação, bem como as vulnerabilidades em cada biblioteca. Para fazer isso, navegue para https://snyk.io e clique em "Sign up" ou "Log in" (se você já é usuário), no canto superior direito do site:

Clique no botão "Log in with your GitHub":

Em seguida, importe o projeto goof que você acabou de clonar anteriormente. Selecione goof da sua lista de repositórios GitHub e clique no botão "Import Projects" no canto superior direito da janela.

Quando o projeto for escaneado, você o verá no seu painel:

Clique no link package.json para ver a página do projeto, que inclui a lista completa de vulnerabilidades de segurança:

Você pode clicar nas abas de issues e dependências para ver mais informações sobre as vulnerabilidades e sua remediação, bem como onde estão sendo introduzidas pela sua aplicação. Você notará no final da listagem de vulnerabilidades uma vulnerabilidade de navegação de diretório no pacote st. Vamos analisar isso em mais detalhes.

Um ataque de Navegação de Diretório (também conhecido como path traversal) visa acessar arquivos e diretórios armazenados fora da pasta pretendida. Ao manipular arquivos com sequências "ponto-ponto-barra" (../) e suas variações, ou usando caminhos absolutos, pode ser possível acessar arquivos e diretórios arbitrários armazenados no sistema de arquivos, incluindo código fonte da aplicação, configuração e outros arquivos críticos do sistema.
As vulnerabilidades de Navegação de Diretório podem ser geralmente divididas em dois tipos:
O pacote na aplicação goof que contém uma vulnerabilidade de navegação de diretório que vamos explorar é o pacote st. Dê uma olhada na documentação do st e familiarize-se com a biblioteca.
Agora você já deve saber o que é navegação de diretório, o que o pacote st faz e pode prosseguir e hackear a aplicação -- você está de volta ao time vermelho! Procure na aplicação onde o pacote st pode estar sendo usado e tente navegar para um diretório ao qual você não deveria ter acesso.
Aqui estão algumas dicas para dar pistas se você ficar preso - tente ao máximo só olhar para elas depois de já ter tentado por conta própria e precisar de ajuda.
Clique para ver Dica 1.
Clique para ver Dica 2.
Clique para ver Dica 3.
Clique para ver Dica 4.
Clique para ver Dica 5.
Clique para ver Dica 6.
Clique para ver Dica 7.
Clique para ver Dica 8.
Clique para ver Dica 9.
Navegue pelo seu sistema de arquivos como se fosse um atacante para encontrar 3 informações sensíveis em sua máquina que você talvez não gostaria que um atacante visse.
Clique para ver Dica 10.