Diário de Bordo – [Henrique Hida]
Disciplina: Gerência de Configuração e Evolução de Software - T01
Equipe: OWASP/Red Team
Comunidade/Projeto de Software Livre: OWASP/ej-application
Sprint 1 | 25/09/2025 — 07/10/2025
Visão Geral
Estudo e testes Ataque sobre CSRF
O que é CSRF (Cross-Site Request Forgery)
CSRF é uma técnica de ataque em que um site malicioso faz com que o navegador de uma vítima autenticada envie requisições indesejadas a um site confiável onde a vítima já possui sessão ativa. O atacante explora o fato de que cookies e outras credenciais gerenciadas automaticamente pelo navegador são incluídas em requisições originadas do contexto do usuário.
Cenário de teste descrito
- Testar via página HTML separada — Criar um arquivo HTML que tenta enviar um POST para
http://localhost:8000/api/v1/votes/
a partir do mesmo navegador onde está logado como admin. Ao submeter a requisição pelo HTML, o servidor respondeu com401 Unauthorized
e o JSON{"detail": "Credenciais de autenticação não foram fornecidas."}
.
Atividades realizadas
Data | Atividade | Tipo | Referência | Situação |
---|---|---|---|---|
02/10 | Estudo aprofundado sobre os CSRF | Estudo | - | Concluído |
06/10 | Aplicação e documentação do ataque | Outro | - | Concluído |
Principais resultados e aprendizados
- O comportamento indica que o endpoint exige um header
Authorization: Bearer <token>
para autenticação, ou outro esquema que não é enviado automaticamente pelo navegador quando a requisição é iniciada de outro site. - Quando a requisição foi disparada a partir do HTML externo, o navegador não enviou qualquer credencial (nem cookie de sessão nem header Authorization), logo o servidor respondeu
401
. - Isso implica que o mecanismo de autenticação atual não é baseado em cookies de sessão enviados automaticamente. Como resultado, o vetor clássico de CSRF (quando o atacante depende dos cookies automáticos do navegador) falhou.
Dificuldades
Tive dificuldades para indentificar e entender alguns endpoints.
Plano para a próxima sprint
[ ] Rodar testes mais profundos de CSRF e testar falsos positivos.
Consideração final
Aprendi como funciona e como se proteger de ataques CSRF.