Mikä on SSRF?

Monesti haavoittuvuudet sotkeentuvat keskenään ja on vaikea sanoa että millä nimellä mitäkin haavoittuvuutta pitäisi kutsua. Tällaisilla asioilla ei kannata vaivata päätään, ruusut tuoksuvat samalta vaikka niitä kutsuisi millä nimellä.

SSRF tulee sanoista Server Side Request Forgery ja sillä viitataan yleensä tilanteeseen jolla hyökkääjä saa sovelluksen lähettämään HTTP-pyyntöjä johonkin hyökkääjän haluamaan, mahdollisesti sisäverkon- tai paikalliseen palveluun.

XXE ja SSRF

XXE-haavoittuvuus usein johtaa myös SSRF-haavoittuvuuteen, koska ulkoiset entiteetit voivat viitata myös erilaisiin resursseihin kuin tiedostoihin, joita yksi esimerkki on HTTP-palvelu.

Tässä on esimerkiksi XML-tiedosto jonka käsiteltyään (haavoittuva) sovellus kävisi lataamassa Hakatemian nettisivun lähdekoodin ja upottaisi sen XML:n sisään.

<!DOCTYPE auto[
    <!ENTITY xxe SYSTEM "https://www.hakatemia.fi">
]>
<auto>
  <malli>&xxe;</malli>
</auto>

Harjoitus

Tee alla oleva harjoitus ja koita saada XXE-hyökkäyksen avulla luettua salainen resepti palvelimella ajossa olevasta sisäisestä HTTP-rajapinnasta.

XXE ja SSRF

Tässä labrassa pääset harjoittelemaan SSRF-hyökkäyksiä XXE-haavoittuvuuksia hyödyntämällä.

Tavoite

Lue salainen resepti palvelimella paikallisesti ajossa olevasta reseptipalvelusta jonka URL-osoite on: http://127.0.0.1:5000/api/v1/recipes

Tehtävät

Flag

Löydä lippu (flag) labraympäristöstä ja syötä se alle.

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.