내가 만든 홈페이지 해킹하기(3)
개발환경 : JSP, Oracle11g
파일 다운로드 취약점
파일 다운로드 취약점은 파일 다운로드 기능이 존재하는 웹에서 파일 다운로드 시 파일의 경로 및 파일명을 파라미터로 받아 처리하는 경우 이를 적절히 필터링 하지 않으면 공격자가 이를 조작하여 허용되지 않은 파일을 다운 받을 수 있는 취약점이다. 공격자는 취약점을 이용하여 시스템 환경 설정 파일, 소스 코드 파일, DB 연동 파일 등 중요한 파일을 다운 받을 수 있다.
점검 방법
대응방안
이론은 이러하고, 지금부터 다운로드 취약점을 통해 해당 서버의 정보를 모의로 빼오는 작업을 해보자.
가장 먼저 떠오르는 질문은
다운로드를 클릭할 시 URL주소를 보면 downloadAction파일을 통해 파일을 다운로드 받는다.
downloadAction 파일을 다운받을 수 있을까?
다른 소스파일들은 접근 할 수 있을까?
현재 위치를 알 수 있을까?
/etc/passwd 파일을 다운받는 시도를 하며 우선 취약점의 존재 여부를 파악해 보도록 한다.
URL에 ../ 를 이용해 상위 폴더로 이동 후, passwd파일에 접근한다.
다운 받은 파일을 열어보자
다음과 같이 정보 열람을 할 수 있음을 확인했다.
먼저 경로를 통해 downloadAction.class 파일이 있는 곳으로 URL을 입력한다.
JAD 프로그램을 이용해 class 파일을 읽을 수 있는 java 파일로 디컴파일
JAD 파일을 다운로드 받아 class 파일과 같은 폴더에 넣어준다.
시작 -> 실행 -> cmd 확인
커맨드창에서 class 파일이 있는 폴더 위치로 찾아간다.
jad -o -sjava 파일명.class 명령어를 입력하면 java 파일로 디컴파일된다.
class 파일에서 디컴파일된 java 파일은 원본 java 파일과 100% 일치하지는 않는다.
다음과 같이 코드가 그대로 드러나게 됨을 확인
다른 소스파일들 현 게시글 페이지인 view.jsp와 DB와 연동하는 DAO파일 user클래스 파일에 접근 가능한지 시도해보자
먼저 view.jsp 파일의 경로 입력
파일 다운로드 확인
View.jsp 파일을 메모장으로 열어 본 결과 코드가 그대로 추출됨을 확인
User.class 와 UserDAO.class 파일 다운로드 하기
두 파일 다 다운로드 확인
파일을 읽기 위해 JAD 프로그램으로 class 파일에서 java 파일로 디컴파일 후 코드를 추출하기
현재 view.jsp의 절대경로나, downloadAction 파일의 절대경로를 알 수 있을까?
알기 어렵다. 프로그램을 쓰면 될지 모르겠으나 아직 해결책을 찾지 못했다.
Dir 경로를 브루트포싱을 이용해 찾아주는 프로그램을 사용해보자
BurpSuite 확장기능 DirBuster 이용
자동으로 브루트포싱을 통해 dir 경로를 탐색해준다.
경로가 잘 안나온다.