
의도적으로 취약하게 설계된 웹앱으로 CVE-2022-42889를 직접 실습해 볼 수 있습니다.
이 웹앱은 CVE-2022-42889에 의도적으로 취약하도록 만들어진 것입니다.
내장 Jetty 서버와 Maven을 사용하여 8080 포트의 \api URL에서 수신 대기하는 서블릿을 시작합니다. 이 엔드포인트는 URL 매개변수 cmd를 허용합니다. 이 값은 ${와 } 사이에 삽입된 후 StringSubstitutor 함수에 전달되며, 이 함수는 차례로 StringLookupFactory를 구현합니다.
StringLookupFactory에는 신뢰할 수 없는 입력이 제공될 경우 쉽게 악용될 수 있는 인터폴레이터(interpolator)가 포함되어 있기 때문에 취약점이 존재합니다. 여기에는 script, dns, url이 포함됩니다. 이들은 v1.10.0부터 기본적으로 비활성화되었으며, coomons-text 1.5 이상부터 v1.10까지의 버전이 영향을 받습니다.
다음 명령을 실행하여 로컬에서 실행할 수 있습니다:
mvn package exec:java
참고: 프로그램은 기본적으로
0.0.0.0에서 수신 대기합니다. 따라서 신뢰할 수 없는 네트워크에 연결된 상태에서는 실행하지 마세요.