2023-12-07일 Apache는 CVE-2023-50164 로 식별된 심각한 심각도 취약점을 해결하기 위해 Struts 버전 6.3.0.2 및 2.5.33을 출시했다. 특정 조건이 충족되면 악용될 수 있으며 공격자는 악성 파일을 업로드하고 대상 서버에서 원격코드 실행(RCE)가 가능하다.
본론
CVE-2023-50164는 Apache struts 가 2023-12-07일에 새로 출시되면서 최신버전에서는 작동하지 않는다.
취약 버전
Struts 2.0.0 ~ 2.3.37 (지원 종료)
Struts 2.5.0 ~ 2.5.32
Struts 6.0.0 ~ 6.3.0.1
실습 환경
실습 시나리오
공격자는 웹 서버를 운영하고 있는데 해당 ApacheStruts2 가 취약함을 인지하지 못하고 그대로 서비스를 하고 있다.
공격자는 Apache Struts2 취약점을 가지고 있는 운영되고 있는 시스템을 발견했고, 해당 시스템에 침투하기 위해 웹쉘을 넣어 시스템을 장악한다.
위치는 /usr/local/tomcat/webapps/ROOT/META-INF/maven/org.trackflaw.example/upload/pom.xml
여기서 struts2 는 6.3.0.1로 확인이 가능하다.
공격자 PC 설정
Burpsuite가 설치된 리눅스 PC에서 진행을 하였으며, index페이지에서 jsp 파일을 업로드 진행한다.
아쉽지만 forbidden 폴더로 이동된다.(사실 아예 업로드를 차단하는게 가장 좋다.)
공격 시연
여기서 파일명을 ../webshell.jsp로 지정하여 상위 폴더로 이동하도록 한다.
결론
기존에 파일 업로드 코드 파일 검증 및 검사 기능이 존재할 경우 해당 취약점의 공격 성공 가능성이 많이 떨어진다. 그럼에도 불구하고 원격 코드 실행(RCE) 취약점으로 해당 시스템에 들어가 시스템의 다른 취약점을 이용해 권한을 탈취하면 해당 시스템 장악까지 가능하므로 최대한 빠르게 Apache Struts 2의 6.3.0.2 이상 또는 2.5.33 이상 버전으로 업데이트를 진행해야 한다.