2. CORS Vulnerabilities
Server-generated ACAO header from client-specified Origin header¶
Wenn ein Server einfach den Origin-Header zurückspiegelt, ohne zu prüfen, ob die Origin wirklich erlaubt ist, ist er verwundbar. Richtig sicher ist:
- Entweder gar kein Cross-Origin-Zugriff auf sensitive Endpunkte,
- oder nur für eine klar definierte Allowlist (Whitelist) von Origins — niemals blind reflektieren.
Warum das Reflektieren von Origin gefährlich ist¶
- Der Browser vertraut dem
Access-Control-Allow-Origin-Header: wenn der Server dort z. B.https://attacker.comschreibt undAccess-Control-Allow-Credentials: truegesetzt ist, dann darfattacker.comdie Antwort inkl. Cookies/Session-Daten in ihrem JavaScript lesen. - Wenn man
Originungeprüft zurückgibt, kann jede beliebige Website (malicious) im Browser eines eingeloggten Opfers Daten abfragen und auslesen. - Selbst wenn man eine Whitelist hat können diese einfach als Origin gesetzt werden - wenn diese ungeprüft reflektiert wird, dann kann man darüber Injektionen einschleusen.
- SUB-Domains können teilweise auch automatisch whitelisted sein. D. h. man könnte im Zweifel seine eigene Domain anmelden die wie eine SUB-Domain der Target-Domain aufgebaut ist.
- NULL Origin kann ebenfalls Wirkung zeigen wenn etwas falsch konfiguriert ist. Browser senden den Wert
nullimOrigin-Header in verschiedenen ungewöhnlichen Situationen:- Cross-Origin-Redirects.
- Anfragen aus serialisierten Daten.
- Anfragen über das
file:-Protokoll. - Sandboxed Cross-Origin-Anfragen.