Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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-2019-3396 — Iniezione di template non autorizzata in Confluence | Kitploit
Strumenti/GitHubGitHub/petrusviet/cve-2019-3396
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubpetrusviet/cve-2019-3396

cve-2019-3396

Iniezione di template non autorizzata in Confluence

Vedi Repository
2125 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

Iniezione di template non autorizzata in Confluence (CVE-2019-3396)

I) Compilazione

  • Il bug si verifica sulle versioni:
    • Tutte le versioni 1.x.x, 2.x.x, 3.x.x, 4.x.x e 5.x.x
    • Tutte le versioni 6.0.x, 6.1.x, 6.2.x, 6.3.x, 6.4.x e 6.5.x
    • Tutte le versioni 6.6.x precedenti alla 6.6.12
    • Tutte le versioni 6.7.x, 6.8.x, 6.9.x, 6.10.x e 6.11.x
    • Tutte le versioni 6.12.x precedenti alla 6.12.3
    • Tutte le versioni 6.13.x precedenti alla 6.13.3
    • Tutte le versioni 6.14.x precedenti alla 6.14.2
  • Dopo aver scaricato il sorgente, è necessario:
    • Impostare il valore confluence.home sull'indirizzo della home di Confluence nel file ./confluence/WEB-INF/classes/confluence-init.properties
    • Aggiungere la variabile CATALINA_OPTS affinché il programma possa essere eseguito in modalità remote debug

Su Windows, file ./bin/setenv.bat

set CATALINA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

su Linux, file ./bin/setenv.sh

CATALINA_OPTS="-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005 ${CATALINA_OPTS}"  
  • Nell'IDE (Intellij) creiamo una configurazione di Debug: Remote JVM Debug con host e port impostati su localhost:5005 e con Command line aguments for remote JVM
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
  • Possiamo usare Postgresql come database:
$ su - postgres
postgres@ubuntu:~$ psql -U postgres
postgres@ubuntu:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help.
 
postgres=# CREATE USER wiki WITH PASSWORD 'wiki';
CREATE ROLE
postgres=# CREATE DATABASE wiki OWNER wiki;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE jira TO wiki;
GRANT
  • Dobbiamo aggiungere i jar: ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar, ./confluence/WEB-INF/lib/confluence-x.x.x.jar, ./confluence/WEB-INF/lib/velocity-x.x.x-atlassian-x.jar alla libreria, così durante il debug possiamo vedere il sorgente necessario.

  • Eseguiamo il file ./bin/start-confluence.bat e potete consultare anche questa guida per installare dal sorgente.

II) Analisi

  • Dopo aver letto la descrizione, sappiamo che il bug ha origine dalla funzionalità Widget Connector, quindi cerco subito su Google per capire di cosa si tratta e come si usa:

    2 per modificare una pagina

    3
    Seleziona Altre macro

    4 Seleziona Widget connector

    image

  • Scelgo dei parametri a caso, premo su Preview e poi passo da Burp per vedere se c'è qualcosa di interessante. image

  • In questo pacchetto vedo un parametro "pluginKey":"com.atlassian.confluence.extra.widgetconnector", quindi suppongo che la funzionalità Widget Connector sia definita nella classe com.atlassian.confluence.extra.widgetconnector; cerco quindi nel path se c'è qualche jar sospetto.

image

  • Provo ad aggiungere il file ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar alla libreria del progetto per poter leggere il codice sorgente e fare debug.

    1
    Come aggiungere un file jar alla libreria

  • Apro il pacchetto widgetconnector, simpatizzo con la classe WidgetMacro, quindi metto un breakpoint nel costruttore e nel metodo execute di questa classe per vedere se viene chiamata quando uso la funzionalità Preview 🕵️

    • image
    • Il metodo execute viene chiamato, poi il programma chiama DefaultRenderManager.getEmbeddedHtml
    • image
Scarica lo strumento