
3 januari 2024 · 2 min read
Bij onze klanten zien we een toenemende implementatie van Cross-Origin Resource Sharing (CORS). Helaas constateren we ook een stijging in het aantal onveilig geconfigureerde CORS-implementaties. In deze blog duiken we dieper in wat CORS is, de meest voorkomende misconfiguraties en hun potentiële risico’s, en hoe je sterke CORS-regels kunt instellen om je webapplicaties te beschermen.
CORS, of Cross-Origin Resource Sharing, is een essentieel beveiligingsmechanisme in moderne webapplicaties. Het stelt een webserver in staat om te bepalen welke andere domeinen/websites toegang mogen hebben tot zijn data. Het beveiligingsmechanisme wordt gedefinieerd via een response header voorafgaand met de tekst Access-Control-.
Tijdens een pentest komen we onderstaande twee onveilige gevallen vaak tegen:
Het gebruik van een wildcard (*)
Het instellen van Access-Control-Allow-Origin: * maakt het mogelijk voor elke website om toegang te krijgen tot de data van de server. Dit kan problematisch zijn, omdat een kwaadwillende website hierdoor toegang kan krijgen tot gegevens die normaal gesproken enkel toegankelijk zijn voor het slachtoffer, zoals interne websites en intranetten. Dit kan leiden tot ongeautoriseerde toegang en datalekken.
Het gebruik van een wildcard in combinatie met inloggegevens
Een risicovolle situatie ontstaat wanneer Access-Control-Allow-Origin: * wordt gecombineerd met Access-Control-Allow-Credentials: true. In deze configuratie kan een kwaadwillende website acties uitvoeren of informatie bekijken via de bestaande sessie van het slachtoffer op de kwetsbare website.
Om de mogelijke kwetsbaarheden van onveilige CORS-configuraties te vermijden, zijn hier enkele beveiligingsmaatregelen:
Stel Access-Control-Allow-Credentials in op true alleen wanneer het absoluut noodzakelijk is, en combineer het nooit met een wildcard in Access-Control-Allow-Origin.OPTIONS) om complexe CORS-verzoeken (zoals die met aangepaste headers of HTTP-methoden die niet GET of POST zijn) vooraf te controleren en te valideren.Origin header in inkomende verzoeken. Dit helpt ervoor te zorgen dat alleen verzoeken van toegestane domeinen worden geaccepteerd.Het correct configureren van CORS is essentieel voor de beveiliging van webapplicaties. Onjuist geconfigureerde CORS-instellingen kunnen een serieuze bedreiging vormen. Heb je hulp nodig bij het beoordelen of verbeteren van je CORS-configuraties? Bij pentests.nl zijn we gespecialiseerd in penetratietesten, inclusief CORS-configuraties. Neem contact met ons op om te ontdekken hoe we je webapplicaties kunnen beveiligen tegen geavanceerde cyberaanvallen.