1. 파일 업로드 취약점

 

1) 정의

  • 파일 업로드 취약점은 웹 사이트의 파일 업로드 기능을 이용하여 인가 받지 않은 파일을 서버에 임의로 업로드 하는 공격이다. 
  • 웹 쉘 형태의 파일을 업로드 후 실행하면 서버의 자원을 장악할 수 있으며 웹 서비스를 실행하는 서버의 권한을 획득할 수 있다. 
  • 다른 페이지의 코드를 변조하여 클라이언트에게 악성 코드를 배포할 수 있다.

 

2) 파일 업로드 공격 원리

행위 발생원인
악의적인 파일 업로드 파일 업로드 시 확장자 체크의 미흡, PUT 메소드 이용
업로드 경로 확인 업로드 디렉토리의 경로 노출
스크립트 실행 실행 권한 존재
  • 위 표의 3가지 조건이 모두 만족할 때 발생하는 취약점이 파일 업로드 공격이다.

 

1. 파일 업로드 공격: 기본

  • 웹페이지에 어떠한 보안대책과 대응방안이 없을 때 파일 업로드 취약점을 이용해 공격한다.

1) 공격 과정

  • php코드를 이용해 웹쉘 작성
  • 게시판에 웹쉘 업로드
  • 프록시 도구를 이용해 업로드 디렉토리의 경로 확인
  • 해당 경로로 이동 후 웹쉘 실행하여 공격

2) 실제 화면

웹쉘 코드

 

웹쉘 업로드

 

업로드 디렉토리 경로 확인

 

웹쉘 실행

 

2. 파일 업로드 공격: 파일 검증 우회

 

1) 파일 검증 우회?

  • 서버는 파일을 주고받을 때 MIME Type으로 파일의 종류를 확인한다.
  • MIME Type의 Content Type을 확인해서 image/jpg등인 경우에만 업로드 할 수 있도록 개발하는 방식

2) 공격 과정

  • php코드를 이용해 웹쉘을 작성한다.
  • 정상적인 image파일을 업로드한다.
  • 웹쉘 업로드를 시도한다.
  • 실패 시 프록시 도구로 해당 패킷을 잡아 정상 업로드와 실패 업로드의 차이를 비교한다.
  • 파일 검증 우회인 경우로 확인되면 Content Type부분을 image/jpg로 수정후 다시 보낸다.
  • 업로드 성공 후 해당 경로로 이동하여 웹쉘 실행

3) 실제 화면

이미지 파일 업로드 시 화면

 

웹쉘 업로드 시 화면

 

Content Type 변경 후 업로드 성공 화면

 

웹쉘 실행

 

1. File Inclusion 취약점

  • 공격자가 악성코드 혹은 웹셸을 서버에 전달하여 해당 페이지를 통해 실행 되도록 하는 취약점
  • 악성 스크립트가 삽입되는 위치에 따라 LFI, RFI로 분류
  • 경로 제한, 파라미터 변조 등에 대한 필터링의 부재로 경로 접근, 파일 실행, 외부 파일 다운로드 등의 다양한 공격으로 활용 가능

 

1) LFI 공격

  • Jpg, png 파일 정상적으로 업로드한다.
  • 프록시 도구를 이용해 파일 내용 가장 밑에 웹셸코드를 삽입하여 업로드한다.
  • File Inclusion 취약점이 있는 페이지에서 웹셸코드를 삽입한 파일의 경로를 파라미터에 삽입한다.
  • 공격을 실행한다.

1-1 실제화면

기존 jpg파일 내용에 웹셸코드 삽입

 

웹쉘 실행 후 공격

 

2) RFI 공격

  • 해커 서버에 웹셸코드를 작성한다.
  • File Inclusion 취약점이 있는 페이지에서 웹셸코드를 삽입한 파일의 경로를 파라미터에 삽입한다.
  • 공격을 실행한다.

2-1 실제화면

해커서버의 웹쉘코드

 

웹쉘 실행 후 공격

 

'Web Hacking' 카테고리의 다른 글

웹 모의 해킹 취약점 항목 분석(#1)  (0) 2023.02.11
불충분한 인증/인가 취약점  (0) 2023.01.17
CSRF  (0) 2022.12.27
XSS  (0) 2022.12.16
Blind SQLi  (0) 2022.12.05

+ Recent posts