Season 1/기술 보안 파일 다운로드(File Download) 취약점 설명 및 진단법 작성자 - 한수임 파일 다운로드 취약점이란 : 파일 다운로드 기능 사용 시 임의의 문자나 주요 파일의 입력을 통해 웹 서버의 홈 디렉터리를 벗어나 임의의 위치에 있는 파일을 열람하거나 다운 가능한 취약점(passwd, 중요파일/백업, 데이터베이스, 소스코드 정보 등) 발생 원인 - 파일 다운로드 시 파일의 절대경로 또는 상대 경로가 노출되는 경우 - 다운로드 모듈이 파일의 경로나 이름을 파라미터로 사용하는 경우 - 파일 경로와 파일명 필터링 미흡하여 ../를 이용해 상위 디렉터리에 접근이 가능한 경우 - 다운로드 경로가 노출되지 않더라도 구조가 단순하여 파라미터 변조를 통해 접근이 허용되지 않은 파일에 접근이 가능할 경우 절대 경로 란?? - 웹 페이지나 파일이 가지고 있는 고유한 경로 ex) C:\Apache24\bin\iconv\test.txt 상대 경로 란 - 현재 위치한 곳을 기준으로 하여 그곳의 위치 ex) http://192.168.0.0/board/data/../../qna/test.txt 취약한 소스코드 형태 String fileName = request.getParameter("fileName"); -> 파일명을 입력값으로 받음 String Filepath = request.getParameter("filePath"); -> 파일 경로를 입력값으로 받음 File file=new File(filePath+fileName); 필터링 없이 경로명+파일명을 조합하여 File객체 생성 진단 방법 - 업로드 된 파일의 속성 정보를 확인하여 해당 파일의 경로 노출 여부 확인 - 사용되는 파라미터 중 변조에 의해 다른 파일에 접근이 가능한 부분이 있는지 확인 - 파일명으로 다운로드 하는것을 확인 후 상위 경로로 이동하는 명령어(../) 삽입 - 다운로드한 주요 파일을 바탕으로 시스템 정보수집 주요 파일 경로 Windows -../../../../boot.ini -../../../../winnt/win.ini -..%2F..%2 Fboot.ini %2F -> /값 인코딩 -..%5C..%5 Cboot.ini %5C -> \(역슬래쉬) 인코딩 -../../../../writetest.txt - /../../../windows/system32/config/sam UNIX - etc/passwd - etc/shadow - etc/security/passwd - etc/security/user 우회 기법 Windows 경로 추적 - http://192.168.0.0/scripts/..%255c..%255c../winnt/system32/cmd.exe?c+dir+c:\ cmd를 통해 해당 시스템 경로를 추적하는 방법 - URL인코딩 특수문자를 인코딩하여 경로 설정 시 적용 - 유니코드 인코딩 파일명을 유니코드 인코딩을 적용하여 파일 다운로드 시도 - 특수문자 변형 (.../.../..//) 사용하여 다운로드 시도 중요 정보 파일 중요 정보 파일 /var/log/message 시스템 메시지 로그 /etc/service 서비스 정보 /etc/passwd 시스템유저 계정 리스트 /etc/shadow 계정 패스워드 파일 /etc/hosts 호스트명을 IP로 풀어줌 ~.bash_history 사용자 명령어 기록 /etc/sysconfig 시스템과 네트워크 설정 파일 /var/log/wtmp who명령에 의해 보여지는 현재 로그인 유저 기록 파일 대응방안 - 파일명과 경로명을 DB에서 관리 - 경로 관련 필터링 로직 구현 - 다운로드 시 권한 체크 - 파일 업로드, 다운로드 모두 조치가 이루어져야 하고 DB 테이블 수정 필요 실습 진행 준비사항 : 파일 다운로드 취약점이 존재하는 페이지, 프록시 툴* 해당 실습은 테스트를 위해 만들어진 페이지에서 진행되었으며, 일반 페이지에서 따라 하시면 안 됩니다. 1. 다운로드 기능 이용 시도 업로드 된 첨부파일 다운로드 시도 2. 프록시를 이용하여 경로 및 파일명 수정 path = 경로이동, filename = 데이터베이스 정보 파일 입력 3. 다운로드한 파일 확인 데이터 베이스 정보가 담긴 파일 다운로드 공유하기 게시글 관리 MSS 'Season 1 > 기술 보안' 카테고리의 다른 글 Old - 15 Write Up (0) 2021.05.14 [dreamhack] file-download-1 문제풀이 (0) 2021.05.14 [dreamhack] cookie 문제풀이 (0) 2021.04.30 파일 업로드(File Upload Attack) 취약점 설명 (0) 2021.03.31 OWASP ZAP Active Scan - Remote OS Command Injection 공격 분석 (0) 2021.03.30 Contents 당신이 좋아할만한 콘텐츠 Old - 15 Write Up 2021.05.14 [dreamhack] file-download-1 문제풀이 2021.05.14 [dreamhack] cookie 문제풀이 2021.04.30 파일 업로드(File Upload Attack) 취약점 설명 2021.03.31 댓글 0 + 이전 댓글 더보기