Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Exploit-CVE-2023-22518 | Kitploit
Strumenti/GitHubGitHub/lilly-dox/exploit-cve-2023-22518
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHublilly-dox/exploit-cve-2023-22518

Exploit-CVE-2023-22518

Vedi Repository
12 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Exploit-CVE-2023-22518

CVE-2023-22518 in Confluence

CVE-2023-22518: Questa vulnerabilità è descritta come “vulnerabilità di autorizzazione impropria nel database e nei server di Confluence”. L'errore interessa le versioni on-premises dei prodotti Atlassian.

Configurazione dell'ambiente Usare la versione vulnerabile 8.0.4 URL di download: https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-8.0.4-x64.exe

1

Selezionare Trial Installation, quindi fare clic sul link per ottenere la chiave di prova gratuita. Successivamente configurare il cluster: scegliere non-cluster.

2

Successivamente passare alla configurazione del database -> Scegliere MySQL

3

Seguire le istruzioni:

  1. Scarica il driver MySQL
  2. Posiziona il file .jar in /home/lily/atlassian/confluence/confluence/WEB-INF/lib
  3. Riavvia Confluence e continua il processo di configurazione.

4

Configurare il database, creare l'utente e la tabella password

root@kitploit:~
CREATE DATABASE securedb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'admin123'@'localhost' IDENTIFIED BY 'supersecure';
GRANT ALL PRIVILEGES ON securedb.* TO 'admin123'@'localhost';
GRANT SUPER ON *.* TO 'your_username'@'your_host';
FLUSH PRIVILEGES;

Quindi modificare /etc/mysql/my.cnf. Aggiungere le seguenti righe:

root@kitploit:~
transaction-isolation = READ-COMMITTED
log_bin_trust_function_creators = 1

5

Quindi riavviare MySQL e Confluence. Poi andare alla pagina di installazione su localhost:8090 e usare il database creato per compilare i campi.

6

Verificare che la connessione sia riuscita, fare clic su Next. Quindi registrarsi.

7

Debug

*Diff Confrontare i due file jar delle due versioni in IntelliJ. Nello specifico, ho confrontato le versioni 8.0.4 e 7.19.16.

Come descritto, confrontare il file confluence.jar delle due versioni tra loro.

image

La differenza tra la versione patchata e quella non patchata è @WebSudoRequired e @SystemAdminOnly

WebSudoRequired è una funzionalità per aumentare la sicurezza delle sessioni di amministrazione. Quando si tenta di accedere all'area admin, il sistema richiede di inserire nuovamente la password anche se si è già autenticati. Aggiunge un ulteriore passaggio di verifica per garantire l'accesso amministrativo.

SystemAdminOnly: È una funzionalità che limita le funzioni di amministrazione ai soli account amministratore. Ciò garantisce che solo gli account autorizzati possano eseguire operazioni importanti che influenzano il sistema.

Impostare un breakpoint su validate() in RestoreAction.class

Screenshot 2024-03-24 081621

La funzione salva il file caricato tramite getRestoreFileFromUpload

Screenshot (541)

getExportDescriptor viene utilizzato per decomprimere e leggere il contenuto del file zip.

Screenshot (542)

Screenshot (543)

Tuttavia, dopo il debug, non sono ancora riuscito a trovare la causa principale della vulnerabilità.

La causa descritta nella CVE è una vulnerabilità di autorizzazione. Questo porta a rivolgere l'attenzione alle ricerche sulle vulnerabilità del linguaggio Java nel processo di gestione dei permessi da parte degli sviluppatori.

Spostiamo l'attenzione sul file struts.xml, che contiene informazioni sulle action e sul routing basato sui namespace, nonché sugli interceptor.

Screenshot 2024-03-24 082951

Screenshot 2024-03-24 083107

Screenshot 2024-03-24 083206

9

Vediamo che il namespace /json estende le funzionalità del namespace /admin. Pertanto, le route create per il namespace /admin possono essere raggiunte anche tramite il namespace /json.

Nel contesto del namespace /json, il processo di routing delle richieste passa attraverso una serie di interceptor. Uno di questi interceptor, chiamato WebSudoInterceptor, esegue controlli basati sull'URI della richiesta.

Nello specifico, WebSudoInterceptor esegue i seguenti controlli:

Se il percorso della richiesta è /authenticate.action, viene ignorato. Se il percorso della richiesta è /admin, controlla se l'attributo WebSudoNotRequired è vuoto.

Se una richiesta viene inviata a '/json', la richiesta a '/json/action' viene inoltrata a '/setup/action' e 'admin/action'. In questa CVE, il percorso vulnerabile è '/json/setup-restore.action?synchronous=true'.

Catturando la richiesta con Burp Suite, GET /json/setup-restore.action. Tuttavia si riceve una risposta "Method Not Allowed". Provando con POST /json/setup-restore.action?synchronous=true si riceve una risposta 200.

10

11

Caricare il file xmlexport-200123123001.zip e ottenere la risposta.

12

13

Ora possiamo accedere con l'account admin:admin.

14

E otteniamo il seguente risultato.

15

Scarica lo strumento