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 bouwt dat verzoek opnieuw op in de API Tester, zodat hij de url overal kan richten waar hij maar wil. En de server haalt elk adres op dat hij eraan geeft, zelfs als hij het zelf nooit zou kunnen bereiken. Elke cloudserver heeft een metadataservice op een vast intern adres die de inloggegevens uitdeelt van de rol die aan die server is gekoppeld. Het is bedoeld voor eigen gebruik van de server en controleert nooit wie er vraagt. Bob heeft alleen de preview-medewerker van Corveil nodig om het voor hem te bereiken.
-
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
Je hebt zojuist gezien hoe een link-preview-functie de inloggegevens van de server lekte en vervolgens de gegevens ervan. Leg vast waarom.
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