겉바속촉

[보안] XSS, 파일 업로드 취약점 본문

IT 일기 (상반기)/네트워크 및 시스템 보안

[보안] XSS, 파일 업로드 취약점

겉바속촉 2021. 1. 29. 16:15
728x90
반응형

 

XSS

 

사이트 간 스크립팅, 크로스 사이트 스크립팅, CROSS-SITE SCRIPTING

 

- XSS취약점은 외부 공격자가 클라이언트 스크립트를 악용하여 웹사이트에 접속하려는 사용자에게

  공격자가 의도한 명령이나 작업을 수행하도록 하는 공격

 

- 악성 서버 유도, 사용자 쿠키 정보 추출을 통해 세션 가로채기 같은 공격도 가능

 

웹 페이지는 개발 편의성이나 시간단축 측면에서 효율적인 동적 메커니즘으로 대부분 제작하기 때문에
   변수를 활용하는 동적인 페이지 유연성이 XSS 취약점을 유발하는 원인이 되어버림

 

 

 

 

 

 

 

 

Reflected XSS : 반사

 

  • 동적인 페이지 = 메시지를 매개변수로 받음 --> 개발 편의성 및 시간 단축
  • 웹 애플리케이션의 지정된 파라미터를 사용할 때 발생하는 취약점을 이용하는 것
  • 브라우저로 반환된 변수 내용을 조작할 수 있음
  • 링크를 전달해서 사용자가 클릭하게 되면서 공격 실행됨
  • 클라이언트 사이트 스크립트 이용자 실행 가능

 

 

점검방법

점검위치 점검 문자열 취약반응
URL 매개변수 "><script>alert('XSS')</script> XSS 팝업 창 출력
URL 매개변수 "><script>alert(document.cookie)</script> Cookie값 팝업 창 출력

 

 

 

 

 

 

 

Stored XSS : 저장

 

  • 웹 애플리케이션의 일반적인 입력, 열람 기능 이용
  • 웹 어플리케이션 취약점이 있는 웹 서버에 악성 스크립트를 영속적으로 저장해 놓는 것
  • 악의적 사용자가 입력한 데이터가 필터링 등의 적절한 조치 없이 다른 사용자에게 보여짐
  • 악의적 사용자가 게시판에 실행하고자 하는 악성코드가 담긴 데이터를 등록
  • 희생자는 해당 게시물을 열람하면 공격자의 데이터가 담긴 악성코드가 실행됨
  • 클라이언트 사이트 스크립트 이용자 실행 가능

         --> 희생자의 세션ID 또는 쿠키값을 탈취하여 사용자 권한 획득
         --> 사용자 PC에 악성 프로그램 설치를 통해 개인정보 탈취 및 PC 정상 작동 방해

 

 

 

 

점검방법

 

 < 취약점 점검 시 중점사항 >

  • 입력값을 받는 모든 애플리케이션을 점검 대상으로 삼기
  • 테스트 수행시에는 xss 필터링 기능을 내려주기
  • 필터링 기능의 보안 안정성 점검
  • 관리자 기능의 애플리케이션은 상세하게 점검
  • 애플리케이션의 파일 업로드, 다운로드 중점으로 점검
         --> html, txt 파일 업로드 허용 여부 점검/ 업로된 파일 제어 방식 점검

 

 

 

 

 

CSRF

 

웹 애플리케이션이 사용자로부터 받은 요청에 대해
사용자가 의도한 대로 작성되고, 전송된 것인지 확인하지 않는 경우 발행가능 하고,

 

특히 해당 사용자가 관리자인 경우
사용자 권한 관리, 게시물 삭제, 사용자 등록 등 관리자 권한으로만 수행 가능한 기능을

공격자의 의도대로 실행시킬 수 있게 됩니다.

 

 

 

대응방안

 

  • 입력값 검증 : 사용자가 입력한 값에 위험성이 존재하지 않는지,
                      각 필드에 입력 예상 값 특성에따라 검증 규칙 가능한지

  • 출력값 검증 : 스크립트 실행을 막는 출력 값 조치,
                      XSS 공격에 사용되는 특수문자 사용을 제한하고 server side에서 검증 수행

  • 위험성 있는 삽입 지점 제거 : 공격자의 응답 인코딩 유형 조작 (출력 값 검증 우회 위험)
                                          응답 헤더의 모든 곳에서 공격자가 수정할 수 있는 모든 여지 차단
                                           직접 인코딩 유형 지정

 

 


 

 

 

 

메모장을 열어서 다음과 같이 입력 후에 저장해주었습니다.

 

 

 

 

그리고 웹 브라우저 창 새로 열어서 저장해두었던 test.html을 드래그앤드롭 해주세요.

다음과 같이 뜨면 okay~

 

 

내용도 입력해준 hi가 잘 출력되고 있습니다.

 

 

 

*****갑자기 참고****

 

파밍 : 위장한다는 뜻, 어떤 사이트의 로그인페이지로 위장

피싱 : 여러 사용자들을 상대로.

피싱 + 파밍 :  로그인 창을 만들어서 입력한 값을 받아냄

 

 

 

 


 

 

파일 업로드

 

 

  • 취약점 및 위험성

    - 애플리케이션 개발, 운영 환경과 동일한 언어로 작성된 악성파일을 웹 서버 측에 업로드
    - 원격으로 해당 파일에 접근하여 실행시키는 취약점

  • 작성된 공격 파일의 기능에 따라 다양한 위험 존재

  • Webshell 등의 파일을 이용한 시스템 장악 목적
  • 파일업로드 공격이 작동되려면 우선 필요한 조건들이 존재 
      
        1.  업로드 포인트 (기능)
        2.  업로드 경로, 위치
        3.  실행권한

          위의 3가지 중에서 하나라도 없으면 WEB SHELL 실행이 안됩니다.

 

 

 

 

진단방법

 

  • 게시판에 첨부파일 기능을 이용하여 가능 여부 확인
  • 게시판에 글쓰기 권한과 파일 첨부 기능이 있는 지 확인
  • jsp, php, asp, cgi 등의 파일들이 업로드 가능한 지 확인

 

1. aaa.png 업로드해보기

2. aaa.php 업로드해보기

<?php phpinfo() ?>

 

 

 

우회기법

 

 

1. 대소문자 우회 공격

 

  - 확장자 비교할 경우 대소문자 무시하는 문자열을 비교해야 함

  - 대소문자 혼합 시스템에서는 인식하므로 가능한 모든 문자 조합에 대해 필터링 필요

 

 

윈도우에서 더 빈번하게 일어나게 됩니다.

대소문자를 구별하지 않기 때문에 aSp 라고 입력해주어도 그냥 asp로 인식하게 되는 거죠!!

 

 

 

 

2. 확장자 연장 우회 공격

 

  - 확장자 필터링을 조건문자 ('.')를 기준으로 앞쪽부터 유효한 파일인지 필터링하면 공격 받을 수 있음.

  - 확장자 필터링을 조건문자 ('.')를 기준으로 맨 마지막부터 해야 함.

 

 

 

 

3. 특수문자 우회 공격

 

  - 종단 문자를 이용한 우회 공격 : %00, %ZZ, %09, %13

  - 세미콜론 이용한 우회 공격 : 파싱대상이 세미콜론 앞쪽만 인식해서 취약점 발생,

                                         확장자가 아니라 파일명 전체에 대한 검사로 필터링 강화해야함.

 

 

4. PUT 메서드를 이용한 공격

 

  - PUT 메서드를 이용해 서버에 파일 직접 올릴 수 있음

  - PUT 메서드 취약점 : WINDOWS IIS 웹서버에서 발생 --> IIS에서 제공하는 WebDAV이용해서.

 

 

 

 

 

 

 

 

공격 시나리오

 

  • Web Shell 업로드 후 실행 --> 실행가능한 서버 사이드 언어 올림
                                            파일을 올릴때에는 다른사람이 알기 어렵도록 만들어서 업로드해야 함
  • NC를 이용하여 리버스 텔넷 연결
  • BackDoor 설치 후 내부 중요정보 유출 시도

 

  • 업로드 기능 존재 확인 -> 악성코드 업로드 시도 -> 시스템 명령어 실행

       - 악성코드 업로드 시도 성공할 경우 : 주요 정보 취득, 시스템 권한 획득

 

 

 

 

 

 

파일업로드 대응방안

 

 

  • 업로드 파일을 위한 디렉토리에는 실행설정을 제거

  • 첨부파일의 확장자 필터링 처리

          - 허용 : 애플리케이션 (게시판)의 성격을 규정하고 업로드 가능한 확장자만을 허용
          - 부정 : 웹 스크립트와 같이 업로드 파일 제한을 이용하여 공격이 가능한 확장자에 대해 필터링
  • 나모 엑티브 스퀘어 등 상용, 공개용 게시판 에디터는
    해당 게시판 환경설정을 통해 파일업로드 확장자 제한 또는 파일, 이미지 업로드 기능을 제거

    *** 게시판 => 디폴트 경로 사용하면 NO ***

 

 

 

 

 

 

확장자 필터링할 때 2가지 케이스 존재

 

 

화이트 리스트 VS 블랙 리스트

화이트 리스트 블랙 리스트
허용된 확장자
블랙리스트보다 쉬움
금지된 확장자
겁나 어려움 --> 서버 언어를 다 입력해야 함
JSP, JSPX, SHTML, PHP, PHP7.....

 

 

 

 

728x90
반응형