
CVE-2022-22963을 재현하는 Python 자동화 스크립트로, Spring Cloud Function의 심각한 SpEL 주입 취약점을 악용하여 승인된 실습 환경에서 리버스 셸을 가능하게 합니다.
CVE-2022-22963에 대한 교육용 개념 증명 자동화로, 승인된 Hack The Box 랩 환경에서 시연되었습니다.
CVE-2022-22963은 spring.cloud.function.routing-expression 헤더와 관련된 Spring Cloud Function 취약점입니다.
취약한 구성에서 공격자는 함수 라우팅 메커니즘을 통해 Java 기능을 호출하기 위해 Spring Expression Language(SpEL) 평가를 악용할 수 있습니다.
이 저장소에는 승인된 CTF/랩 환경에서 취약점을 재현하는 데 사용되는 Python 자동화 스크립트가 포함되어 있습니다.
CVE ID: CVE-2022-22963 영향을 받는 구성 요소: Spring Cloud Function 영향을 받는 버전: < 3.1.7, < 3.2.3 수정된 버전: 3.1.7, 3.2.3 취약점 분류: 표현식 언어 주입 (CWE-917) 공격 경로: 네트워크, 인증 불필요(배포 환경에 따라 다름) 심각도: 치명적(CVSS 9.8, NVD 기준) 참고 자료 NVD 항목: https://nvd.nist.gov/vuln/detail/CVE-2022-22963 Spring 공식 보안 권고: https://spring.io/security/cve-2022-22963 수정 커밋 / 릴리스 노트: Spring Cloud Function GitHub 릴리스 참조
Spring Cloud Function의 라우팅 기능을 사용하면 호출자가 헤더를 통해 요청을 처리할 함수를 선택할 수 있습니다. 수정 전에는 이 헤더의 값이 제한 없이 SpEL 평가 컨텍스트로 전달되었습니다. SpEL은 임의의 Java 클래스와 메서드 호출(예: T(java.lang.Runtime))을 지원하므로, 조작된 헤더 값은 취약한 애플리케이션이 실행 중인 호스트에서 OS 명령 실행으로 이어질 수 있습니다.
성공적인 악용 시 인증되지 않은 공격자가 애플리케이션 프로세스의 권한으로 임의의 OS 명령을 실행할 수 있으며, 환경 구성에 따라 전체 호스트 장악, 측면 이동, 데이터 유출로 이어질 수 있습니다.
제공된 코드는 취약한 대상에 리버스 셸을 주입할 수 있게 해줍니다.
usage: exploit.py [-h] lhost lport url
이 콘텐츠는 승인된 보안 연구 및 교육 목적으로만 제공됩니다(예: HTB 랩 환경). 소유하지 않았거나 명시적인 서면 테스트 허가를 받지 않은 시스템에 이 정보를 사용하지 마십시오.