Ponarejanje zahtev na strani streznika (SSRF) je eden najpomembnejsih razredov ranljivosti v sodobnih spletnih aplikacijah. Do njega pride, ko napadalec lahko vpliva na zahteve HTTP na strani streznika in tako povzroci, da aplikacija poslje zahteve na nenamene cilje. V danasnjih oblacno naravnanih arhitekturah, kjer notranje storitve komunicirajo prek HTTP in so oblacni metapodatkovni API-ji le eno zahtevo stran, se je SSRF iz zmerne ugotovitve povzpel v kriticno. Leta 2021 je bil dodan v OWASP Top 10 kot samostojna kategorija, kar odrazuje njegov narascajoci pomen v realnem svetu.
Vrste SSRF
Razumevanje razlicnih variant SSRF je bistvenega pomena za temeljito testiranje:
- Osnovni (In-Band) SSRF - Streznik pridobi URL in vrne odgovor neposredno napadalcu. To je najlazje izkoriščati in potrditi, saj lahko takoj vidite odgovore notranjih storitev, vsebino datotek ali metapodatke v telesu odgovora HTTP.
- Slepi SSRF - Streznik izvede zahtevo, vendar odgovora ne vrne napadalcu. Zanesti se morate na izvenkanalne tehnike, kot so poizvedbe DNS, casovne razlike ali zunanji strezniki za povratne klice (Burp Collaborator, interactsh), da potrdite ranljivost. Izkoriščanje je tezje, vendar je lahko vpliv enako resen.
- Delni (pol-slepi) SSRF - Streznik vrne omejene informacije, kot so statusne kode HTTP, odzivni casi ali sporocila o napakah, ki se razlikujejo glede na to, ali je cilj dosegljiv. To je mogoce uporabiti za skeniranje vrat ali sklepanje o razpolozljivosti notranjih storitev.
Analiza vpliva
- Dostop do notranjih storitev - Doseganje skrbniskih panelov, podatkovnih baz, predpomnilnikov (Redis, Memcached) ali notranjih API-jev, ki niso izpostavljeni internetu.
- Izkoriščanje oblacnih metapodatkov - Oblacne metapodatkovne storitve izpostavljajo poverilnice IAM, kljuce API in konfiguracijo infrastrukture.
- Notranje skeniranje vrat - Preslikava notranje omrezne topologije z opazovanjem odzivnih casov in statusnih kod.
- Branje lokalnih datotek - Kadar aplikacija podpira shemo file://, lahko SSRF bere lokalne datoteke.
- Oddaljeno izvajanje kode - SSRF je mogoce veriziti v RCE s ciljanjem notranjih storitev z znanimi ranljivostmi.
Koncne tocke oblacnih metapodatkov
- AWS IMDSv1 - http://169.254.169.254/latest/meta-data/ zagotavlja identiteto instance in poverilnice vloge IAM na /latest/meta-data/iam/security-credentials/[ime-vloge].
- AWS IMDSv2 - Zahteva zahtevo PUT na /latest/api/token z glavo X-aws-ec2-metadata-token-ttl-seconds za pridobitev sejanskega zetona.
- GCP - http://metadata.google.internal/computeMetadata/v1/ zahteva glavo Metadata-Flavor: Google. Dostopni zetoni so na /instance/service-accounts/default/token.
- Azure - http://169.254.169.254/metadata/instance?api-version=2021-02-01 zahteva glavo Metadata: true. Zetoni upravljane identitete so na /metadata/identity/oauth2/token.
Tehnike obvoda
- Kodiranje URL - Enojno, dvojno ali trojno URL-kodiranje ciljnega IP ali imena gostitelja. Na primer, 169.254.169.254 postane %31%36%39%2e%32%35%34%2e%31%36%39%2e%32%35%34.
- Triki z obliko IP - Naslov IP 169.254.169.254 je mogoce predstaviti kot decimalno stevilo (2852039166), sestnajstisko (0xa9fea9fe), osmisko (0251.0376.0251.0376) ali preslikano v IPv6 (::ffff:169.254.169.254).
- DNS rebinding - Registracija domene, ki izmenjevaje razresuje na dovoljen zunanji IP in ciljni notranji IP. Validacijski pregled uspe ob prvi razresitvi, dejanska zahteva pa zadene notranji cilj.
- Verige preusmeritev - Gostovanje URL-ja na strezniku pod nadzorom napadalca, ki vrne preusmeritev 302 na notranji cilj.
- Razlike v razclenjevanju URL - Razlicne knjiznice za razclenjevanje URL dvoumne URL-je interpretirajo razlicno. Uporaba simbolov @, fragmentov ali povratnih posevnic lahko povzroci drugacno razresitev.
- Alternativni protokoli - Poskusanje shem gopher://, dict:// ali ftp:// za interakcijo z notranjimi storitvami na nacine, ki jih HTTP ne more.
Scenariji SSRF v realnem svetu
Med penetracijskimi testi pogosto naletim na SSRF v naslednjih funkcionalnostih aplikacij:
- Funkcionalnost webhookov - Aplikacije, ki posiljajo povratne klice HTTP na uporabnisko konfigurirane URL-je.
- Generatorji PDF - Pretvorba HTML v PDF na strani streznika (wkhtmltopdf, Puppeteer, WeasyPrint), ki obdeluje uporabnisko posredovan HTML.
- Obdelovalci slik - Funkcije, ki pridobivajo slike iz URL-jev za spreminjanje velikosti, obrezovanje ali uvoz avatarjev.
- Predogledi URL in razgrnitev povezav - Aplikacije za klepet in druzabne platforme, ki pridobivajo metapodatke URL ko uporabniki delijo povezave.
Zaznavanje in preprecevanje
Pristop poglobljene obrambe je bistven, ker nobeden posamezen nadzor ne odpravi SSRF v celoti:
- Beli seznam URL - Vzdrzujte strog beli seznam dovoljenih ciljnih gostiteljev, obsegov IP, vrat in protokolov. Privzeto zavrnite in dovolite le znane dobre cilje.
- Uveljavitev IMDSv2 - Na AWS uveljavite nacin samo-IMDSv2 na vseh instancah EC2. Nastavite omejitev skokov na 1.
- Segmentacija omrezja - Uporabite konfiguracije VPC, varnostne skupine in omrezne ACL-je, da preprecite aplikacijskim streznikom dostop do obcutljivih notranjih storitev.
- Najboljse prakse validacije URL - Razresite ime gostitelja pred izvedbo zahteve in validirajte razreseni IP glede na seznam prepovedi zasebnih obsegov (RFC 1918, link-local, loopback).
- Onemogocanje preusmeritev - Kjer je mogoce, ne sledite preusmeritvam HTTP. Ce so preusmeritve nujne, uporabite enako validacijo za vsak cilj preusmeritve.
Orodja za testiranje
- Burp Collaborator / interactsh - Zaznavanje slepega SSRF z opazovanjem izvenkanalnih povratnih klicev DNS in HTTP.
- ssrf-sheriff - Avtomatizirano orodje za zaznavanje SSRF, ki generira vsebine za razlicne tehnike obvoda.
- Prilagojeni seznami besed - Sestavite ciljno specificne sezname besed z notranjimi imeni gostiteljev in potmi oblacnih metapodatkov.
- Gopherus - Generira vsebine gopher:// za izkoriščanje notranjih storitev, kot so MySQL, Redis, SMTP in FastCGI.
Zanima vas vec o tej temi? Preberite mojo strokovno stran o Web Application Security →
Komentarji
Ni se komentarjev. Bodite prvi!
Dodaj komentar