본문 바로가기

old/Cyber Security

사이버 보안: File Upload 파일 업로드란

반응형

정의

파일 업로드 공격은 악의적인 사용자가 웹 응용 프로그램 또는 웹 사이트에 파일을 업로드하여 보안 취약점을 악용하는 공격입니다. 보통 웹쉘파일을 업로드 합니다.

사이버 보안: 웹셀(Web Shell) 이란

취약점 발생 지점 리스트

  • 업로드 가능한 파일의 종류
  • 파일이 업로드된 경로가 확인 가능하고 또 실행이 되는 경우

취약점 검증 방법

  • 파일 업로드 기능이 있는 게시판
  • 로그아웃한 상태에서 마이페이지 접근

파일 업로드 공격 치트시트

공격법

공격순서

  1. 공격자는 웹 응용 프로그램의 파일 업로드 기능을 이용하여 파일을 업로드합니다.
  2. 어떤 유형의 파일이 허용되는지 확인한다 (php, png, jpg…etc).
  3. 업로드된 파일이 서버의 어느 경로에 저장되는지 파일경로가 노출되는지 확인한다.
  4. 노출된 경로로 get 방식으로 파일에 접근할수 있는지 확인한다.
  5. 업로드 공격으로 원하는 정보를 탈취한다.

파일 업로드 구조

파일 업로드 공격 발생 과정

웹쉘파일 업로드 과정

  1. 파일 선택: webshell파일을 선택
  2. 파일 업로드 요청: 서버에서 webshell 파일인 php파일을 허용함
  3. 파일 유효성 검사: 유효성 검사 통과
  4. 파일 정보 저장: webshell파일이 저장된다.
  5. 저장 결과 전달: 공격자가 원하는 정보를 webshell을 통해서 전달받는다.

대응방법

  • 파일 형식 검증 강화: 업로드된 파일의 유효성을 검사하여 허용된 파일 형식만 허용합니다.
  • 파일 이름 검증: 파일 이름에 대한 유효성을 검사하여 악성 파일 이름을 차단합니다.
  • 파일 크기 제한: 공격자가 대용량 파일을 업로드하여 서버 자원을 고갈시키는 것을 방지하기 위해 파일 크기 제한을 설정합니다.
  • 보안 정책 엄격화: 서버에서 업로드된 파일의 저장 위치와 권한을 제한하고, 실행 가능한 파일을 업로드할 수 없도록 보안 정책을 엄격히 적용합니다.
  • 파일 업로드 후 이벤트 검증: 파일 업로드 후 서버에서 발생하는 이벤트를 검증하여 악의적인 동작
반응형