it-swarm.com.de

Variieren: Origin-Antwortheader und CORS-Ausnutzung

Kürzlich hat PortSwigger (Leute hinter Burp Suite) einen Blog-Beitrag verfasst, in dem die Sicherheitsrisiken im Zusammenhang mit CORS-Fehlkonfigurationen erörtert wurden.

http://blog.portswigger.net/2016/10/exploiting-cors-misconfigurations-for.html

Zusammenfassend spricht der Blog über unsichere Möglichkeiten, CORS zu aktivieren, mit denen böswillige Websites Daten von einer Zielwebsite lesen können. Gegen Ende spricht der Blog über einen Präventionsmechanismus, an dem Vary: Origin Header:

Wenn Sie sich den Abschnitt "Überlegungen zur Implementierung" in der CORS-Spezifikation ansehen, werden Sie feststellen, dass Entwickler angewiesen werden, den HTTP-Header "Variieren: Ursprung" anzugeben, wenn Header für Access-Control-Allow-Origin dynamisch generiert werden.

Es fällt mir schwer zu verstehen, wie genau der Vary-Header dazu beiträgt, die CORS-Ausnutzung (XSS mit Cache-Vergiftung) in einem Szenario zu verhindern, in dem Access-Control-Allow-Origin Header wird dynamisch generiert (vom Client gesteuert).

12
Shurmajee

Es ist wichtig, das Vary: Origin Header, um das Caching zu verhindern. Der Header gibt an, dass die Antwort in irgendeiner Weise vom Ursprung abhängt und daher für keinen anderen Ursprung aus dem Cache bereitgestellt werden sollte. Wenn der Header fehlt, sind möglicherweise Cache-Vergiftungsangriffe möglich, wie im Artikel am Beispiel von XSS über einen reflektierten benutzerdefinierten Header erläutert. Ein fehlender Vary -Header erzeugt keine eigene Sicherheitsanfälligkeit.

13
Arminius