문제 정보
드림이가 톰캣 서버로 개발을 시작하였습니다.
서비스의 취약점을 찾아 플래그를 획득하세요.
플래그는 /flag 경로에 있습니다.
풀이 힌트
1. 공격 백터 파악
2. Path Traversal 취약점
3. Tomcat의 Manager 설정 파일
문제 풀이
![](https://blog.kakaocdn.net/dn/b05vIG/btrlZt8q3zA/EtyxkMRat426Gqf6wUFb7k/img.png)
문제 페이지에 들어가니, 위와 같은 사이트가 나왔다.
공격 백터를 찾기위해 페이지를 조사 했지만, robots.txt도 없고 설명에서도 별다른 내용이 없었다.
![](https://blog.kakaocdn.net/dn/dKIsnh/btrlV00w7id/T4WVvRh74BamVwWzaNlHp1/img.png)
그래서 페이지 소스코드 보기를 하여 코드를 살펴보니, /image.jsp이라는 페이지를 찾을 수 있었다.
공격 백터로 /image.jsp의 file 파라미터를 이용하면 될 듯 싶다.
![](https://blog.kakaocdn.net/dn/tK0ZD/btrl1YNqhnz/yVqdA00iYSzKE8gU0Jv02K/img.png)
/image.jsp의 file 파라미터를 이용하여 index 페이지에서 본 사진을 불려왔다.
내가 예상하는 것은 /image.jsp의 기능은 file 파라미터에 넣은 값을 파일의 이름으로 인식하고, 해당 파일이 있으면 반환하는 것으로 보인다.
![](https://blog.kakaocdn.net/dn/k7fwE/btrlYNfhdgA/Z7UfkC5DOKkGLMGUw0r0D0/img.png)
path traversal 취약점을 이용하여 flag 파일을 반환 받으려고 했지만 실패하였다.
또한 flag 파일에 png 확장자도 붙었지만 실패하였다.
다른 방법을 찾기 Tomcat을 알아보기 시작하였다.
Tomcat 중요 파일 : https://itwarehouses.tistory.com/8
![](https://blog.kakaocdn.net/dn/cagSxL/btrlZvLXotp/axUkuHKKA6rrLVFmNyzLnk/img.png)
위에 참고로 넣은 블로그의 내용을 토대로 한번 tomcat의 설정 파일인 server.xml 파일을 불려냈다.
그랬더니, 위와 같은 이미지가 띄어졌고 해당 페이지를 server.xml으로 이름을 변경하여 다운로드하였다.
![](https://blog.kakaocdn.net/dn/bjjqeR/btrlSYIPAXP/YPBlgvXqYK9vDvlGT4b9Y1/img.png)
확인해본 결과, 아주 잘 다운로드가 되어 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
![](https://blog.kakaocdn.net/dn/dhqSYj/btrlV1SFJ4n/Li6Cpw2axNLprLUpsj3sCK/img.png)
나는 Tomcat manager에 접근하기 위해 server.xml 파일을 다운받은 방법과 같은 방법으로 tomcat-users.xml 파일을 다운받아 내용을 확인하였다.
![](https://blog.kakaocdn.net/dn/Dx76c/btrl0EuQkMw/tHcKx7SAkPfevQ7slRIVAk/img.png)
tomcat-users.xml 파일에서 확인한 tomcat 유저로 로그인에 성공하였다.
나는 WAR file to deploy를 보고, 웹쉘을 업로드하여 flag 파일을 읽어오면 되겠다는 생각을 하였다.
WebShell : https://github.com/BustedSec/webshell/blob/master/webshell.war
![](https://blog.kakaocdn.net/dn/pfuHa/btrl0ZTj0q3/IjkSY1Rl4p08KC7I7mnsvK/img.png)
웹쉘을 업로드하여 Deploy을 한 결과, 아주 성공적으로 반영이 됐다.
![](https://blog.kakaocdn.net/dn/QcFz2/btrlUOTw6Gk/l3qkHvXf1HZpIEdBvtN631/img.png)
웹쉘이 잘 작동하는지 확인해봤는데, 아주 잘 작동되는 것을 볼 수 있다.
또한 root 디렉터리에 flag 파일이 있는 것도 확인이 됐다.
flag 파일 권한을 보면, 실행 권한 밖에 없다. 그래서 image.jsp 페이지에서 파일을 못 읽어서 반환을 못한 것으로 보인다.
![](https://blog.kakaocdn.net/dn/3M2op/btrlZcyQ8cP/IG47qNH9XvkUEvqEslfMt1/img.png)
flag 파일을 실행하니, 문제 정답을 반환하는 것을 볼 수 있었다.
'Wargame > Dreamhack' 카테고리의 다른 글
[Dreamhack Web - Lv 2] simple_sqli (0) | 2021.12.05 |
---|---|
[Dreamhack Web - Lv 2] simple-ssti (0) | 2021.12.01 |
[Dreamhack Web - Lv 1] csrf-2 (0) | 2021.11.22 |
[Dreamhack Web - Lv 1] xss-2 (0) | 2021.11.14 |
[Dreamhack Web - Lv 1] devtools-sources (0) | 2021.11.13 |
Comment