Skip to content

Latest commit

 

History

History
68 lines (43 loc) · 2.06 KB

File metadata and controls

68 lines (43 loc) · 2.06 KB

API Vulnerável em Java

Java Spring

Este projeto foi criado com vulnerabilidades para uso em laboratório como back-end e rodar localmente

Instalação

  • VSCode ou outra IDE que rode Java
  • Java 17
  • Dependências existentes no pom.xml
  • Postman ou Insomnia (ou ferramenta similar) - Para interagir com a API

Instalação

  1. Clone o repositório:
git clone https://github.com/convisolabs/java-vuln-api.git
  1. Start a API executando o arquivo JavaVulnAppForumApplication.java

A API pode ser acessada em http://localhost:8080

  1. Endpoints da API A API prover os seguintes endpoints:
POST /api/register - Criar novo usuário

POST /api/login - Logar na aplicação.

GET /api/allusers - Consultador todos os usuários

GET /api/userid/{id} - Consultar usuário por ID

GET /api/updatepass - Atualizar senha do usuário

GET /api/deluser/{id} - Deletar usuário por ID

POST /api/sendfile - Salvar arquivo

GET /api/name - Ler conteúdo do arquivo

## Endpoints OAuth Vulneráveis

GET /oauth/authorize - Autorização OAuth (vulnerável a client secret exposto)

POST /oauth/token - Troca de código por token (vulnerável a reutilização de código)

GET /oauth/userinfo - Informações do usuário (vulnerável a validação inadequada)

POST /oauth/jwt - Geração de JWT a partir do OAuth (vulnerável a usuário fake)

GET /oauth/callback - Callback OAuth (vulnerável a validação inadequada)

Os endpoints disponibilizados pela API podem ser acessados utilizando-se a collection existente em /java-vuln-api-forum/tree/main/src/main/resources

Autenticação

A API utiliza Spring Security para controlar a autenticação, conforme as permissões a seguir:

USER -> Permissão padrão para usuários.
ADMIN -> Permissão de admin para usuários administradores.

Banco de Dados

O projeto utiliza Sqlite3 como solução de banco de dados