문제 정보

드림이가 톰캣 서버로 개발을 시작하였습니다.
서비스의 취약점을 찾아 플래그를 획득하세요.
플래그는 /flag 경로에 있습니다.

풀이 힌트

1. 공격 백터 파악

2. Path Traversal 취약점

3. Tomcat의 Manager 설정 파일

문제 풀이

더보기

문제 페이지에 들어가니, 위와 같은 사이트가 나왔다.
공격 백터를 찾기위해 페이지를 조사 했지만, robots.txt도 없고 설명에서도 별다른 내용이 없었다.

 

그래서 페이지 소스코드 보기를 하여 코드를 살펴보니, /image.jsp이라는 페이지를 찾을 수 있었다.
공격 백터로 /image.jsp의 file 파라미터를 이용하면 될 듯 싶다.

 

/image.jsp의 file 파라미터를 이용하여 index 페이지에서 본 사진을 불려왔다.
내가 예상하는 것은 /image.jsp의 기능은 file 파라미터에 넣은 값을 파일의 이름으로 인식하고, 해당 파일이 있으면 반환하는 것으로 보인다.

 

path traversal 취약점을 이용하여 flag 파일을 반환 받으려고 했지만 실패하였다.
또한 flag 파일에 png 확장자도 붙었지만 실패하였다.

 

다른 방법을 찾기 Tomcat을 알아보기 시작하였다.

Tomcat 중요 파일 : https://itwarehouses.tistory.com/8

 

../../../../../../../../../../usr/local/tomcat/conf/server.xml

위에 참고로 넣은 블로그의 내용을 토대로 한번 tomcat의 설정 파일인 server.xml 파일을 불려냈다.
그랬더니, 위와 같은 이미지가 띄어졌고 해당 페이지를 server.xml으로 이름을 변경하여 다운로드하였다.

 

확인해본 결과, 아주 잘 다운로드가 되어 tomcat의 server.xml 파일을 볼 수 있었다.
내용을 확인한 결과 45번 줄에 conf/tomcat-users.xml 이라는 파일을 사용한다는 것을 볼 수 있었다.

블로그에선 tomcat-users.xml 파일은 Tomcat의 manager 기능을 사용하기 위해 사용자 권한을 설청하는 파일이라고 한다.

Guide to Tomcat Manager Application : https://www.baeldung.com/tomcat-manager-app

 

나는 Tomcat manager에 접근하기 위해 server.xml 파일을 다운받은 방법과 같은 방법으로 tomcat-users.xml 파일을 다운받아 내용을 확인하였다.

 

tomcat-users.xml 파일에서 확인한 tomcat 유저로 로그인에 성공하였다.
나는 WAR file to deploy를 보고, 웹쉘을 업로드하여 flag 파일을 읽어오면 되겠다는 생각을 하였다.

WebShell : https://github.com/BustedSec/webshell/blob/master/webshell.war

 

웹쉘을 업로드하여 Deploy을 한 결과, 아주 성공적으로 반영이 됐다.

 

ls -al /

웹쉘이 잘 작동하는지 확인해봤는데, 아주 잘 작동되는 것을 볼 수 있다.
또한 root 디렉터리에 flag 파일이 있는 것도 확인이 됐다.

 

flag 파일 권한을 보면, 실행 권한 밖에 없다. 그래서 image.jsp 페이지에서 파일을 못 읽어서 반환을 못한 것으로 보인다.

 

/flag

flag 파일을 실행하니, 문제 정답을 반환하는 것을 볼 수 있었다.

'워게임 > dreamhack' 카테고리의 다른 글

[dreamhack] session-basic 문제풀이  (0) 2022.05.26
[Dreamhack Web - Lv 2] Flask-Dev  (0) 2021.12.14
[Dreamhack Web - Lv 1] mongoboard  (0) 2021.11.10
[dreamhack] baby-sqlite 문제풀이  (0) 2021.10.20
[dreamhack] rev-basic-7 문제풀이  (0) 2021.09.30
복사했습니다!