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 ✅).