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
CVE-2023-22515 | Kitploit
Strumenti/GitHubGitHub/tranphuc2005/cve-2023-22515
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubtranphuc2005/cve-2023-22515

CVE-2023-22515

Vedi Repository
11 mesi 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

CVE-2023-22515

Informazioni principali su CVE-2023-22515

  • Prodotti interessati: Atlassian Confluence Data Center & Confluence Server.

  • Data di pubblicazione: 04/10/2023.

  • Severità: Critical (CVSS ~ 10.0).

  • Tipo di vulnerabilità: Broken Access Control / Improper Authorization → consente a un attaccante di creare un account admin da remoto.

  • Il difetto risiede nel meccanismo di setup di Confluence

  • Versioni interessate: Confluence Data Center & Server 8.0.0 → 8.5.1.

Ricerca della vulnerabilità

  • Inizialmente, durante l'installazione di Confluence, è presente una fase di configurazione per far funzionare il server, ad esempio la connessione al DATABASE, la creazione degli utenti, ... Queste operazioni vengono eseguite tramite il browser WEB e i percorsi URL /setup/. L'ultimo passaggio della configurazione è /setup/setupadministrator.action.
  • Una volta completata, le impostazioni non vengono più richiamate. Se proviamo a chiamarle, viene mostrato un messaggio di errore.

1

  • Ciò deriva da uno degli interceptor, SetupCheckInterceptor di struts.xml

    • struts.xml è il file di configurazione centrale per Struts.

    • Definisce come Confluence mappa URL → Action class → View template.

    • Dichiara inoltre gli interceptor (classi di intercettazione che elaborano la request prima/dopo l'esecuzione dell'action).

1

In SetupCheckInterceptor viene chiamato BootstrapUtils.getBootstrapManager().isSetupComplete()

root@kitploit:~
public String intercept(ActionInvocation actionInvocation) throws Exception {
    if (BootstrapUtils.getBootstrapManager().isSetupComplete() && ContainerManager.isContainerSetup())
        return "alreadysetup"; 
    return actionInvocation.invoke();
}

Spiegazione

  • BootstrapUtils.getBootstrapManager().isSetupComplete()
    → Verifica se Confluence ha completato il processo di setup (tramite wizard, inserimento licenza, creazione utente admin) o meno.

  • ContainerManager.isContainerSetup()
    → Verifica se il container Spring IoC è stato inizializzato completamente.

  • Se entrambe le condizioni sono vere:
    → Significa che il sistema ha completato il setup → l'interceptor restituisce immediatamente "alreadysetup".
    → Non consente di eseguire altre action (di solito le action di setup come SetupDatabaseAction, SetupLicenseAction, ...).

  • Se il setup non è completo:
    → Chiama actionInvocation.invoke() → cioè continua l'esecuzione dell'action richiesta dall'utente.

getBootstrapManager() → di solito restituisce DefaultAtlassianBootstrapManager, che gestisce tutte le informazioni di configurazione principali durante il setup.

  • DefaultAtlassianBootstrapManager.isSetupCompletepossiamo vedere che il metodo di configurazione dell'applicazione isSetupCompleteviene chiamato per verificare se il processo di setup è stato completato.

1

=> Se impostiamo isSetupComplete = False, SetupCheckInterceptornon restituirà "alreadysetup" e /setup/setupadministrator.actionsarà accessibile.

Di seguito abbiamo un ServerInfoAction

  • ServerInfoAction = Action pubblica in Confluence → consente a qualsiasi utente di chiamarla senza login e senza token CSRF. Quando viene eseguita, restituisce solo "success" → mappata a un template che mostra le informazioni del server.

1

  • Eredita da ConfluenceActionSupport
  • In ConfluenceActionSupport vediamo che getBootstrapStatusProviderrestituisce BootstrapStatusProviderImpl, l'istanza che stiamo cercando

1

  • In BootstrapStatusProviderImplc'è getApplicationConfig per restituire la configurazione dell'applicazione

1

  • Infine, all'interno di ApplicationConfig, si può vedere che implementa il controllo setSetupComplete

1

  • Combinando le parti sopra, possiamo dedurre una catena di metodi per impostare setSetupComplete = false
root@kitploit:~
getBootstrapStatusProvider(). getApplicationConfig (). setSetupComplete ( false );
  • XWorks2 ci consente di eseguire questo tipo di catena getter/setter; possiamo costruire un parametro HTTP per implementare la catena di chiamate ai metodi sopra utilizzando la notazione richiesta da XWorks2
root@kitploit:~
bootstrapStatusProvider.applicationConfig.setupComplete=false
  • Sfrutteremo /server-info.action, un URL in Confluence gestito da ServerInfoAction, poiché è un endpoint pubblico che non richiede login.
root@kitploit:~
/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false

1

Controlliamo il Debug:

  • setupComplete (parametro passato al metodo)
    → false
    Cioè il metodo viene chiamato con il parametro false.

  • this.setupComplete (variabile di istanza dell'oggetto ApplicationConfig)
    → true (prima dell'assegnazione).

  • Quando il comando termina → this.setupComplete diventa false.

1

  • Dopo aver completato il passaggio sopra, proviamo di nuovo l'endpoint /setup/setupadministrator.action e riusciamo

1

  • Dopo la creazione, accedi e verifica di nuovo i permessi

1

Scarica lo strumento