🎯 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

ChallengeEndpointDificuldadeDica
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

ChallengeEndpointDificuldadeDica
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

ChallengeEndpointDificuldadeDica
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

ChallengeEndpointDificuldadeDica
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

ChallengeEndpointDificuldadeDica
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çãoComo encontrar
Flag 1SQLi no config da APIGET /api/config — campo "flag"
Flag 2Mensagem privadaIDOR no dashboard do user 1 ou SQLi nas mensagens
Flag 3JWT Privilege EscalationForge um JWT como admin e acesse /jwt.php

📚 Referências