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) 실제 화면
1. File Inclusion 취약점
- 공격자가 악성코드 혹은 웹셸을 서버에 전달하여 해당 페이지를 통해 실행 되도록 하는 취약점
- 악성 스크립트가 삽입되는 위치에 따라 LFI, RFI로 분류
- 경로 제한, 파라미터 변조 등에 대한 필터링의 부재로 경로 접근, 파일 실행, 외부 파일 다운로드 등의 다양한 공격으로 활용 가능
1) LFI 공격
- Jpg, png 파일 정상적으로 업로드한다.
- 프록시 도구를 이용해 파일 내용 가장 밑에 웹셸코드를 삽입하여 업로드한다.
- File Inclusion 취약점이 있는 페이지에서 웹셸코드를 삽입한 파일의 경로를 파라미터에 삽입한다.
- 공격을 실행한다.
1-1 실제화면
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 |