🎯 Pentesting Challenges
Laboratório de vulnerabilidades para estudo de segurança ofensiva. Cada desafio está marcado com a categoria OWASP e dificuldade.
16
Total Challenges
6
Categorias OWASP
4
Serviços
3
CTF Flags
🔴 A01 — Broken Access Control
| Challenge | Endpoint | Dificuldade | Dica |
|---|---|---|---|
| IDOR - Profile | /profile.php?id=1 |
Fácil | Troque o ?id= para ver outros usuários |
| IDOR - Dashboard | /dashboard.php?id=1 |
Fácil | Acesse o dashboard de outro usuário sem autenticar |
| CSRF - Delete User | /admin-panel/users/delete?id=X |
Médio | Sem token CSRF — delete via GET no painel admin |
| Privilege Escalation - API | POST /api/users |
Médio | Envie {"role":"admin"} no body para escalar privilégios |
🟠A02 — Cryptographic Failures
| Challenge | Endpoint | Dificuldade | Dica |
|---|---|---|---|
| MD5 Password Cracking | /api/users?id=1 |
Fácil | A API expõe password_hash - crack MD5 via hashcat/john |
| PHP Type Juggling | POST /service/auth |
Médio | Hash "0e..." == 0 em comparação loose. Tente "240610708" |
| Weak JWT (none alg) | /jwt.php |
DifĂcil | JWT aceita alg:none. Forge um token como admin |
🔵 A03 — Injection
| Challenge | Endpoint | Dificuldade | Dica |
|---|---|---|---|
| SQLi - Login Bypass | /login.php |
Fácil | Username: ' OR '1'='1' -- |
| SQLi - UNION Search | /search.php?q=a |
Médio | UNION SELECT — descubra tabelas e extraia dados |
| SQLi - Profile ID | /profile.php?id=1 |
Médio | id=1 UNION SELECT 1,2,3,4,5,6,7,8 -- - |
| Command Injection | /admin-panel/tools/ping |
DifĂcil | host=127.0.0.1; id — precisa bypasear autenticação admin |
| Stored XSS (Bio) | /profile.php?id=2 |
Fácil | Salve <script>alert(1)</script> no campo bio |
| Reflected XSS | /contact.php?msg= |
Fácil | msg=<script>alert(document.cookie)</script> |
| XXE Injection | POST /service/ |
DifĂcil | Envie XML com DOCTYPE e entity externa apontando para /etc/passwd |
🟢 A05 — Security Misconfiguration
| Challenge | Endpoint | Dificuldade | Dica |
|---|---|---|---|
| PHPInfo Leak | /admin-panel/phpinfo |
Fácil | Acesse sem autenticação — leaks de config, paths e env vars |
| Config API Leak | /api/config |
Fácil | GET /api/config expõe flags, API keys e credenciais |
| HTML Comment Credentials | / e /admin-panel/ |
Fácil | Inspecione o HTML source — credenciais em comentários |
| Debug Info no Erro | /download.php |
Fácil | Erro revela caminho completo do arquivo no servidor |
🟣 A08/A10 — SSRF & Deserialization
| Challenge | Endpoint | Dificuldade | Dica |
|---|---|---|---|
| SSRF - Webhook | POST /service/webhook |
DifĂcil | url=http://169.254.169.254/latest/meta-data/ (AWS IMDS) ou file:///etc/passwd |
| SSRF - Status | GET /service/status?host= |
Médio | Acesse serviços internos: host=http://127.0.0.1:3001/config |
| PHP Deserialization | /deserialize.php |
DifĂcil | Modifique o cookie serializado para alterar seu papel/objeto |
| Path Traversal / LFI | /download.php |
Médio | Leia arquivos fora do diretório uploads com ../../../ |
| Unrestricted Upload | /upload.php |
Médio | Faça upload de um webshell .php e acesse em /uploads/ |
🏴 CTF Flags
| # | Descrição | Como encontrar |
|---|---|---|
| Flag 1 | SQLi no config da API | GET /api/config — campo "flag" |
| Flag 2 | Mensagem privada | IDOR no dashboard do user 1 ou SQLi nas mensagens |
| Flag 3 | JWT Privilege Escalation | Forge um JWT como admin e acesse /jwt.php |