인프런 커뮤니티 질문&답변

웬하님의 프로필 이미지
웬하

작성한 질문수

모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1

선생님 ㅠㅠ 안됩니다.

작성

·

2.9K

1

선생님 제가 지금  [실습2-2] "직접 제작하면서 배우는 JSP 기반의 파일 업로드 기능에 대한 이해" 이 부분을 공부하고 있는데

아파치  톰캣 폴더 안에 webapp 안에 Root 폴더에 index.jsp, upload.jsp 파일 둘 다 만들어서

선생님께서 강의해주신 그대로 코드를 작성하고 톰캣을 실행시켜서

127.0.0.1:8080에 접속해서  "파일 선택 선택된 파일 없음 upload"까지는 정상적으로 되었는데

그 이후에 파일을 선택하고 업로드 버튼을 누르면 "HTTP 상태 500 - 내부 서버 오류"가 발생합니다.

제가 upload.jsp에 작성한 코드는 

<%@ page language="java" contentType="text/html; charset=UTF-8" %>

<%@ page import="com.oreilly.servlet.MultipartRequest" %>

<%

    String path = request.getRealPath("upload");

    MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");

    String filename = path + "/" + multi.getFilesystemName("userfile");

%>

<li>업로드 성공 : <%=filename%></li>

이것이고 "HTTP 상태 500- 내부 서버 오류"에 써 있던 문구는

org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 

JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다.
The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from required .class files
3: <%
4:     String path = request.getRealPath("upload");
5: 
6:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
7:     String filename = path + "/" + multi.getFilesystemName("userfile");
8: %>
9: 


JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다.
The type javax.servlet.ServletRequest cannot be resolved. It is indirectly referenced from required .class files
3: <%
4:     String path = request.getRealPath("upload");
5: 
6:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
7:     String filename = path + "/" + multi.getFilesystemName("userfile");
8: %>
9: 


JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다.
The constructor MultipartRequest(HttpServletRequest, String) refers to the missing type HttpServletRequest
3: <%
4:     String path = request.getRealPath("upload");
5: 
6:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
7:     String filename = path + "/" + multi.getFilesystemName("userfile");
8: %>
9: 


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:482)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:392)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
	jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

이것입니다.

선생님께서 말씀하셨던 cos.jar 파일도 잘 아파치 톰캣 폴더 lib에 넣었는데 이럽니다 ㅠㅠ

저는 지금 비주얼 스튜디오 코드를 사용하고 있고 이클립스는 사용하지 않고 있습니다.

아파치 톰캣은 10버전을 사용하고 있고 JDK8버전을 사용하고 있습니다.

PHP 기반의 파일은 정상적으로 잘 만들어지는데  JSP 기반의 파일은 안 만들어집니다.

검색을 해도 이클립스 어쩌구 저쩌구만 나오고 미치겠습니다.

6행에서 오류가 발생했다고 해서 계속 확인을 해봤는데 선생님께서 작성해주셨던 코드랑 다를 게 없었습니다.

index.jsp 파일에 있는 코드들은 다 색깔이 들어가는데 

이상하게 upload.jsp 파일에 있는 코드들은 다 색깔이 안 들어갑니다.

 

답변 1

0

크리핵티브님의 프로필 이미지
크리핵티브
지식공유자

cos.jar 라이브러리 인식이 되지 않아 클래스를 못찾는것 같습니다.

톰캣 재기동을 해도 안되나요??

톰캣 재기동을 해도 안 됩니다.

Multiple annotations found at this line:

- The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from 

required .class files

- The constructor MultipartRequest(HttpServletRequest, String) refers to the missing type HttpServletRequest

- The type javax.servlet.ServletRequest cannot be resolved. It is indirectly referenced from required .class files

웬하님의 프로필 이미지
웬하

작성한 질문수

질문하기