의견.png

파일업로드

위키원
greenwood26 (토론 | 기여)님의 2020년 9월 18일 (금) 14:18 판 (GUUpload)
이동: 둘러보기, 검색

파일업로드란 파일 데이터를 하류 노드에서 상류 노드로 전송하는 것을 말한다. 전송할 때는 파일 전송 프로토콜(FTP)을 사용한다.

구조

라이브러리

cos.jar

GUUpload

GUUpload
  • 특징 : gu-upload는 웹 사이트에서 파일을 업로드하는 HTML5 기반 자바스크립트(JavaScript) 라이브러리이다. 기본적으로 HTML5 기반이기 때문에 인터넷 익스플로러(Internet Explorer), 파이어폭스(Firefox), 크롬(Chrome)에서 실행된다. 그리고 인터넷 익스플로러 9 버전 이전의 웹 브라우저에서는 플래시로 제작된 SWFUpload가 실행된다.
  • 주요 기능 : 탐색기에서 드래그 앤 드롭(Drag & Drop)으로 파일을 추가하거나, gu-upload를 더블 클릭하여 파일을 추가할 수 있다. 여러 개의 파일을 선택해서 업로드 및 전송 상태를 표시할 수 있고 추가한 파일을 리스트나 미리보기로 설정해서 사용이 가능하다. 기타 사항으로 파일 크기나 개수를 제한 할 수 있는 기능이 있다.

취약점

  • 피해 범위 : 웹사이트에 악성 스크립트를 이용하여 해당 서버에서 시스템 쉘 명령을 실행하여 시스템의 구조를 파악할 수 있다. 웹쉘(Web Shell)을 통해 공격을 진행하며 백도어(Backdoor)를 업로드해 사용자 인증없이 서버나 다른 계정에 접속 가능하게 만들어 치명적인 결과를 만들어낼 수 있다.[1]
  • 공격조건 : 일단 당연하게도 파일이 업로드 가능한 환경에서 일어나며 파일이 업로드된 디렉토리의 경로를 알아야한다. 또한 디렉토리 경로를 알았다면 업로드된 디렉토리에 대한 실행 권한이 있어야 공격이 가능하다.
  • 원인 : 웹 서비스를 이용하여 서버측의 명령을 실행할 수 있는 악의적인 목적의 스크립트 파일인 웹셀을 실행할 수 있다. php나 jsp는 서버측에서 동적인 처리를 위하여 사용하는 언어인데 php나 jsp를 활용해 데이터베이스와 통신할 수 있게 만들어준다. 이렇게 할 수 있는 원인은 php나 jsp 언어를 사용하면 리눅스 시스템 명령을 실행할 수 있기 때문이다.[2]
  • 대응방법 : 시큐어 코딩을 하고 취약점 패치를 진행해야한다. 대표적으로 악성 스크립트에 포함될 수 있는 키워드나 명령어에 대한 문장을 필터링할 수 있게 만들고 업로드 파일의 확장자 및 실행권한을 제한하는 방법이 있다.

각주

  1. Luuii , 〈백도어(Backdoor)〉, 《티스토리》, 2017-11-27
  2. 기르르, 〈파일 업로드/다운로드 취약점 - 업로드〉, 《티스토리》, 2020-04-08

참고자료

같이 보기

  의견.png 이 파일업로드 문서는 솔루션에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.