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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/mogwailabs/cve-2023-32692-codeigniter4
Vulnerability AnalysisCode AnalysisWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubmogwailabs/cve-2023-32692-codeigniter4

CVE-2023-32692-CodeIgniter4

예제 애플리케이션, CVE-2023-32692 (Validation Rule Injection in the PHP Framework CodeIgniter)에 취약함

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-32692 — CodeIgniter 4 검증 규칙 주입

CVE-2023-32692는 CodeIgniter 4 PHP 프레임워크의 코드 주입 취약점으로, 4.0.0부터 4.3.4까지의 버전에 영향을 미칩니다. 4.3.5(2023년 6월 출시)에서 수정되었습니다. 이것은 이 취약점을 가지고 놀고 싶은 사람을 위한 데모 환경입니다.

취약점 세부 정보는 MOGWAI LABS 블로그에서 확인할 수 있습니다.

PoC 환경

이 저장소는 취약점을 보여주는 최소한의 CodeIgniter 4 애플리케이션을 포함합니다. Dev Container 구성을 제공하므로 로컬 PHP 설치 없이 VS Code(또는 호환되는 편집기)에서 바로 실행할 수 있습니다.

기본 Docker 컨테이너는 PHP 8.3을 사용하며 디버깅을 위해 XDebug 확장을 설치합니다. CodeIgniter 프레임워크에 필요한 추가 PHP 모듈은 로컬 "Devcontainer features"로 설치됩니다. 기본적으로 그 기능을 시험해보고 싶었기 때문입니다.

다음 VS Code 확장이 포함되어 있습니다(모두 컨테이너 내부에 설치되며, 사용자의 VS Code 인스턴스에는 설치되지 않음).

ExtensionPurpose
xdebug.php-debugPHP XDebug 지원 — 취약한 코드 경로를 단계별로 따라가기
bmewburn.vscode-intelephense-clientPHP Intelephense 코드 탐색용
humao.rest-client포함된 요청 템플릿을 실행하기 위한 HTTP 클라이언트

설치

  1. 저장소를 VS Code에서 열고 프롬프트가 나타나면 Dev Container로 다시 엽니다(Docker 필요). 시간이 다소 걸릴 수 있습니다.
  2. 컨테이너 빌드 시 composer를 통해 필요한 패키지가 자동으로 설치되므로 따로 할 일은 없습니다.
  3. 환경 템플릿을 복사합니다:
root@kitploit:~
cp env .env

예제 애플리케이션 시작

Dev Container에는 Apache가 포함되어 있지만, 이 PoC에는 PHP 내장 개발 서버로 충분합니다. VS Code 내에서 터미널을 열고 다음을 실행합니다:

root@kitploit:~
./spark serve --host 0.0.0.0

애플리케이션은 http://localhost:8080에서 사용할 수 있습니다. 일반 웹 브라우저를 사용하여 컨테이너 외부에서 접근할 수 있습니다.


XDebug로 디버깅

.vscode/launch.json은 XDebug가 TCP 포트 9003에서 수신하도록 구성합니다(Dev Container의 Dockerfile에도 설정되어 있음).

root@kitploit:~
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        }
    ]
}

PHP 개발 서버를 시작하기 전에 디버그 리스너를 시작하세요: VS Code 사이드바에서 "실행 및 디버그" 아이콘을 클릭하고 "Listen for Xdebug" 옆의 재생 버튼을 누릅니다.

Dev Container 내에서 애플리케이션 디버깅


취약한 코드

취약한 엔드포인트는 app/Controllers/Poc.php에 구현되어 있습니다. 두 개의 라우트를 제공합니다:

RouteDescription
POST /poc/update취약한 엔드포인트 — 문자열 기반 검증 규칙 사용
POST /poc/updateSafe안전한 엔드포인트 — 배열 기반 검증 규칙 사용

Poc::update()에 중단점을 설정하고 CodeIgniter 검증 엔진 내에서 {id} 플레이스홀더가 규칙 문자열로 어떻게 확장되는지 추적하세요. 관련 프레임워크 코드는 vendor/codeigniter4/framework/system/Validation/Validation.php에 있습니다.


HTTP 요청 템플릿

http_requests/ 폴더에는 VS Code REST 클라이언트 확장을 위한 즉시 사용 가능한 템플릿이 포함되어 있습니다:

FileDescription
reqular_request.http기준 정당한 요청 — 주입 없음, 검증이 정상적으로 통과
basic_poc.httpid 매개변수를 통해 추가 검증 규칙 주입
system_call.http주입을 악용하여 system()을 호출하고 OS 명령 실행 (touch /tmp/pwn)

아무 .http 파일을 열고 요청 블록 위의 Send Request를 클릭하여 실행합니다.

도구 다운로드