1. 파일 다운로드 취약점

외부에서 입력되는 값에 대해 경로 조작에 사용될 수 있는 문자 (../, %2e%2e%ef 등)를 검증하지 않고, 주요 시스템 파일이 저장된 경로에 접근 권한이 설정되어 있지 않을 경우 발생하는 취약점이다.

 

공격자가 임의 위치에 존재하는 파일을 다운로드 할 수 있으며, 다운로드된 시스템 파일 정보 획득을 통해 2차 공격에  악용할 수 있다. 특히, 유닉스나 리눅스 계열의 웹 서버는 각별한 주의가 필요하다.

 

검색 방법

  1. Burp Suite 를 통해 Null bytes 허용 여부 확인
    • { Windows : \,  Linux: / } 입력
    • ./, ../ 을 입력하여 파일 다운로드 시도
  2. download.jsp 파일 존재 여부 확인
    • inurl:"download.jsp?filename="
    • inurl:"download.jsp?path="

 

대응 방안

  1. 파일 경로 매개변수 문자열 필터링 : [..], [../], [,,\] 등 상위 경로를 의미하는 path traversal 문자열 필터링
  2. 파일 다운로드 가능 위치 고정 : 가능 위치 외 디렉터리에서는 다운로드가 불가능하도록 로직 구현
  3. 다운로드 파일 이름을 DB.에 저장하고 다운로드 시 요청파일 이름과 비교하여 적정성 검증을 통한 취약한 매개변수 제거

2. 파일 업로드 취약점

공격자가 웹 사이트의 게시판 및 자료실의 파일 업로드 기능을 이용하여 공격자가 만든 특정 공격 프로그램을 업로드하여 웹 서버의 권한 획득이 가능한 취약점이다.

 

공격자가 WebShell 등 악성 프로그램 파일을 정상 파일로 위장하여 업로드를 수행할 수 있다.

공격자가 악성 프로그램 업로드 후 해당 파일에 접근하여 스크립트를 실행하면 외부 보안 체계를 우회하여 내부 정보 획득 및 백도어 설치, 악성파일 삽입 등 추가 공격을 수행하여 웹 서버를 장악할 수 있다.

 

검색 방법

  1. 업로드 기능이 활성화된 게시판 탐색
  2. 웹서버 디렉터리 내 shell interpreter 탐색
    e.g., Runtime.exe, WSCRIPT.SHELL, shell_exec 등
    • intitle:"index of/" + "Runtime.exe"

 

대응 방안

  1. 업로드 확장자 검증 기능 구현
  2. Upload 파일에 대한 실행 권한 제거 : Upload 전용 디렉터리를 별도 생성하고, 해당 디렉터리에 대한 실행 권한 제거

3. 소스코드 내 중요정보 노출 취약점

소스코드 주석문에 민감한 정보가 포함되어 있는 경우, 외부 공격자에 의해 패스워드 등 보안 관련 정보가 노출될 수 있는 취약점이다.

 

특히 웹 애플리케이션 개발 시 개발자가 편의를 위해 삽입한 코드에서 관리자 페이지 접속 링크, 게시판 삭제용 비밀번호 등이 그대로 노출되어 이를 공격자가 별다른 시도 없이 손쉽게 공격이 가능하다.

 

검색 방법

  1. 하드코딩된 관리자 계정 정보
     > filetype:php intext:"$admin_username" (or "$admin_password")
  2. PHP 오류 메시지가 포함된 로그 파일 찾기
    > intitle"index of" "error_log" OR "php_errors.log

대응 방안

  1. 중요 정보 파일 별도 보관 및 난독화
  2. 불필요한 백업 파일 전부 삭제
  3. Client side 대신 Server side에서 중요 로직 처리
    • Client side : HTML, JAVA Script, Virtual Basic Script 등
    • Server side : ASP, JSP, PHP, Perl 등

4. 공개용 웹 게시판 취약점

공개용 게시판을 사용할 경우 인터넷에 공개된 각종 취약점 정보로 인해 홈페이지 변조 및 해킹 경유지로 사용될 수 있는 취약점이다.

 

제로보드, 그누보드 등 오픈소스 기반으로 제작된 공개용 웹 게시판을 사용할 경우 각종 취약점에 대한 정보가 인터넷에 공개된다. 공격자가 해당 정보를 수집하여 웹 게시판 별로 유발되는 취약점을 악용하여 홈페이지 위변조나 해킹 경유지 사용, 파일 업로드 등 다양한 공격이 가능하다.

 

검색 방법

  • ExploitDB, CVE 등 취약점 공개 사이트 검색

ExploitDB(1) - GNUboard
ExploitDB(2) - zeroboard

  • 공개용 웹 게시판 기본 페이지 확인
     > inurl:gnuboard

 

대응 방안

  1. 웹 서버에 공개된 웹 게시판 사용 지양
    • e.g., 그누보드, 제로보드, 테크노트 등
  2. 사용할 경우 보안 패치 및 최신 제품 설치
  3. 정기적으로 보안 취약점 정보 확인

참고 출처

 - 웹 어플리케이션 취약점 분석(‘17년 1분기)

 - 웹 어플리케이션 취약점 분석(‘17년 2분기)

 - 파일 다운로드 취약점

 - 파일 업로드 취약점

 -