Skip to content

Demonstrar na prática como ocorre uma falha de SQL Injection (SQLi) em aplicações Java legadas e como mitigá-la utilizando boas práticas modernas com Spring Data JPA.

Notifications You must be signed in to change notification settings

D1MELLO/SQL-Injection-Java-Spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ OWASP Top 10 Demo: SQL Injection (Spring Boot)

Projeto de demonstração de vulnerabilidades e correções de segurança em APIs Java.

🎯 Objetivo

Demonstrar na prática como ocorre uma falha de SQL Injection (SQLi) em aplicações Java legadas e como mitigá-la utilizando boas práticas modernas com Spring Data JPA.

🛠️ Tecnologias

  • Java 21
  • Spring Boot 4
  • Spring Data JPA (Hibernate)
  • H2 Database
  • Kali Linux / Curl (Para testes de penetração)

💀 O Cenário de Ataque (V1 - Vulnerável)

O endpoint /api/v1/auth/login utiliza concatenação de strings SQL, permitindo que atacantes manipulem a query.

Payload utilizado:

{
  "username": "admin' --",
  "password": "x"
}

curl -X POST http://localhost:8080/api/v1/auth/login \
     -H "Content-Type: application/json" \
     -d @exploit.json
LOGIN SUCESSO! Bem-vindo admin

Resultado: O atacante consegue logar como administrador sem a senha.

🛡️ A Solução Segura (V2 - Blindado)

O endpoint /api/v2/auth/login utiliza Prepared Statements através do Spring Data JPA. O input do usuário é tratado estritamente como dado, neutralizando a injeção de comandos.

curl -X POST http://localhost:8080/api/v2/auth/login \
     -H "Content-Type: application/json" \
     -d @exploit.json
🛡️ FALHA NO LOGIN (Tentativa Bloqueada)

Resultado: O ataque é neutralizado e o login é recusado.

🚀 Como rodar este projeto

  1. Clone o repositório.

  2. Execute mvn spring-boot:run.

  3. Utilize os comandos curl acima para testar.

About

Demonstrar na prática como ocorre uma falha de SQL Injection (SQLi) em aplicações Java legadas e como mitigá-la utilizando boas práticas modernas com Spring Data JPA.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages