Vervalsing van verzoeken aan de serverzijde
Laat de server ophalen wat u zelf niet kunt bereiken.
Wat is Vervalsing van verzoeken aan de serverzijde?
De applicatie haalt een URL op die een gebruiker heeft opgegeven, en niemand controleert waar deze naar verwijst. Dat verzoek vertrekt vanuit uw eigen netwerk, zodat de aanvaller de positie van de server overneemt. U richt een link-preview-functie op de cloud-metagegevensservice op het vaste link-local-adres, leest de inloggegevens van de gekoppelde rol van de instantie terug en vermeldt een winkel vol klantfacturen bij hen. Vervolgens lost u de host op en weigert u privé-, loopback- en link-local-bereiken, waarbij u opnieuw controleert na omleidingen, met token-vereiste metadata (IMDSv2) en rollen met de minste rechten eronder.
Wat je leert in Vervalsing van verzoeken aan de serverzijde
- Verzoekvervalsing aan de serverzijde uitleggen: een app die een door de gebruiker opgegeven URL ophaalt, zorgt ervoor dat een aanvaller de server systemen kan laten bereiken die de aanvaller niet rechtstreeks kan bereiken
- Herken de cloud-metagegevensservice op 169.254.169.254 als een eindpunt dat inloggegevens uitgeeft dat een SSRF kan bereiken, ook al kan een externe aanvaller dat niet
- Traceer hoe een goedaardige link-preview-functie een volledige keten van diefstal van inloggegevens en data-exfiltratie wordt wanneer de ophaalbestemming nooit wordt gevalideerd
- Maak onderscheid tussen bestemmingsvalidatie (los de host op, weiger privé- en link-local-bereiken, controleer opnieuw na omleidingen) van fragiele string-blokkeerlijsten, en leg uit waarom alleen de eerstgenoemde geldt
- Combineer de codefix met diepgaande verdediging: token-vereiste instantie-metagegevens (IMDSv2), instantierollen met de minste rechten en waarschuwingen over een ophaalwerker die gevoelige opslag aanraakt
Vervalsing van verzoeken aan de serverzijde — Trainingsstappen
-
De preview-functie
Met Corveil kan iedereen een link plakken en een nette voorbeeldkaart terugkrijgen, de paginatitel en afbeelding, klaar om in een bericht te plaatsen. De preview is niet in de browser ingebouwd: de eigen servers van Corveil halen de link op. Bob opent de functie om te zien hoe deze werkt voordat hij deze aanraakt.
-
Waar het verzoek vandaan komt
Eén detail op die pagina is de hele reden waarom Bob geïnteresseerd is.
-
Gebruik de functie
Kijk hoe de functie zich normaal gedraagt. Plak een gewoon nieuwsartikel en genereer een voorbeeld, zodat de pagina een echt verzoek doet dat Bob kan inzien.
-
Zoek het eindpunt
Het verzoek ging uit en de browser registreerde het. Open het netwerkpaneel en lees waar de pagina het daadwerkelijk naartoe heeft gestuurd.
-
Richt het naar binnen
Bob rebuilds that request in the API Tester so he can point the url anywhere he likes. And the server will fetch whatever address he gives it, even ones he could never reach himself. Every cloud server has a metadata service at a fixed internal address that hands out the credentials of the role attached to that server. It is meant for the server's own use. On AWS, when the older token-less IMDSv1 is still allowed, as it is on Corveil's worker, it answers a plain GET without checking who is asking. Bob just needs Corveil's preview worker to reach it for him.
-
Bereik de metadataservice
Bouw het voorbeeldverzoek opnieuw op in de API Tester, maar wijs de url naar het pad voor de metagegevensgegevens in plaats van naar een nieuwsartikel. De medewerker van Corveil haalt het binnen het netwerk op en geeft terug wat het krijgt.
-
Referenties in de hand
Het antwoord is geen voorbeeld. Het is een set live-referenties voor de cloudrol van de preview-werker.
-
Onderteken een aanvraag met de gestolen sleutel
De interne opslag van Corveil vertrouwt een ondertekend verzoek. Bob ondertekent er een met de AccessKeyId die hij zojuist uit de metadataservice heeft gehaald en vermeldt de bucket met klantfacturen, een plek waar normaal gesproken geen externe gebruiker kan komen.
-
De gegevens zijn verdwenen
Namen, bedragen en factuur-ID's, meer dan veertigduizend klantrecords, bereikt via een functie die bedoeld is om een voorbeeld van een link te bekijken.
-
Kennis check
Dekking van beveiligingsframeworks
OWASP Top 10
- A01:2025 Broken Access Control
- A10:2021 Server-Side Request Forgery (SSRF)
CWE
- CWE-918 Server-Side Request Forgery (SSRF)
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security